我有两个具有相同字段的表。我希望将它们组合成一个大表。每个表的主键都是唯一的响应者ID。
当我将两个表与UNION ALL组合在一起时,一些数据会被放入错误的字段中!为什么是这样?它们位于原始表中的正确字段中。 UNION ALL是正确的运算符吗?
答案 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应该是正确的操作,但是您是否在两个部分中按名称明确列出了字段,或者您是否使用星号作为通配符?