2012-10-14 86 views
2

我有两个表具有相同字段。我希望将这些组合成一张大桌子。每个表的主键都是唯一的受访者ID。使用UNION合并两个表ALL

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

回答

6

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

此外,它们在表格结构的声明中找到的顺序将对此产生影响。

如果在表B定义为名称,电子邮件表A被定义为名称,地址,电子邮件,地址

select * from tableA 
union all 
select * from tableB 

会把tableB.Email在别名为“地址”一栏,以解决这个问题,你ALL

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

我想你说我*必须*小心,并确保每个字段都与正确的字段配对。那是对的吗? (我刚刚发现如何在Access中执行此操作。:) 顺便说一句,UNION ALL与追加有什么不同? Access中的 – user422318

+0

,一个APPEND语句,将一条记录添加到表中。 UNION ALL做的是将两个表中的所有记录作为单个数据结果返回,并包含重复项。这与仅返回一组不同的结果数据的UNION相反。 –

+0

您可以使用APPEND或UNION ALL来合并表格吗?
因此,UNION结合表和删除重复? – user422318

4

UNION应该是正确的操作,但你在这两个零件清单领域明确地通过名称或没有使用星号作为通配符:必须在SELECT语句定义列?

+0

我用星号作为通配符。我今天才知道,我应该配对每个字段而不是使用星号。 :) – user422318