2012-11-20 46 views
0

我有三个表具有完全相同的列,唯一的区别是这些列中的数据。我想知道是否(以及如何)将列合并到一个表中。我知道,如果合并两个表,数据可以通过布尔值区分,但是可以用三个表完成同样的工作吗?将3个表合并到一个表中

任何帮助,将不胜感激。

回答

4

如果列和数据类型相同,则可以使用UNION ALL查询。

select col1, col2, 'table1' as src 
from table1 
union all 
select col1, col2, 'table2' as src 
from table2 
union all 
select col1, col2, 'table3' as src 
from table3 

该版本将包含任何重复的记录,如果你不想重复,那么你可以使用UNION这将删除任何重复的记录。

如果数据类型不同,那么您将需要将数据转换为相同类型。

+1

我会添加一列来显示数据来自哪个源表,特别是如果这将用于提供某种“合并”表。 –

+0

@AaronBertrand编辑,谢谢。出于这些原因,我通常会包含该值。 – Taryn