【发布时间】:2012-10-14 14:03:07
【问题描述】:
我有两个具有相同字段的表。我希望将这些组合成一张大桌子。每个表的主键都是唯一的响应者 ID。
当我将这两个表与 UNION ALL 组合在一起时,一些数据被放入了错误的字段中!为什么是这样?它们位于原始表中的正确字段中。 UNION ALL 是正确的运算符吗?
【问题讨论】:
标签: sql
我有两个具有相同字段的表。我希望将这些组合成一张大桌子。每个表的主键都是唯一的响应者 ID。
当我将这两个表与 UNION ALL 组合在一起时,一些数据被放入了错误的字段中!为什么是这样?它们位于原始表中的正确字段中。 UNION ALL 是正确的运算符吗?
【问题讨论】:
标签: sql
关于联合要记住的是,结果数据集的列名将由联合声明中的第一个表定义。
此外,它们在表结构声明中的顺序将对此产生影响。
如果表A定义为姓名、地址、电子邮件,而表B定义为姓名、电子邮件、地址
select * from tableA
union all
select * from tableB
将 tableB.Email 放在别名为“地址”的列中以更正此问题,您必须在 select 语句中定义列:
select Name, Email, Address from tableA
union all
select Name, Email Address from tableB
【讨论】:
UNION ALL 应该是正确的操作,但是您是否在两个部分中都按名称明确列出了字段,或者您是否使用星号作为通配符?
【讨论】: