使用UNION ALL组合两个表

时间:2012-10-14 05:43:14

标签: sql

我有两个具有相同字段的表。我希望将它们组合成一个大表。每个表的主键都是唯一的响应者ID。

当我将两个表与UNION ALL组合在一起时,一些数据会被放入错误的字段中!为什么是这样?它们位于原始表中的正确字段中。 UNION ALL是正确的运算符吗?

2 个答案:

答案 0 :(得分:6)

关于Unions要记住的事情是结果数据集的列名将由union声明中的第一个表定义。

此外,它们在表格结构的声明中找到的顺序将在此处具有影响力。

如果tableA被定义为Name,Address,Email,而表B被定义为Name,Email,Address

select * from tableA
union all
select * from tableB

将tableB.Email放在别名为“Address”的列中以更正此问题,您必须在select语句中定义列:

select Name, Email, Address from tableA
union all
select Name, Email Address from tableB

答案 1 :(得分:4)

UNION ALL应该是正确的操作,但是您是否在两个部分中按名称明确列出了字段,或者您是否使用星号作为通配符?