【发布时间】:2014-06-20 23:13:40
【问题描述】:
我有两个表Main 和Training,我在Main.ID = Training.EMP_ID; 上完全加入它们,但我的数据有一个大问题。
我必须使用FULL JOIN 从两个表中获取所有数据;但是我的Training 表中有一些ID 和Emp_Names 与Main 表不同。
我需要比较两列并返回两个表中的所有EMP_ID,并比较两个表中的EMP_Names,以确保它们不会被多次记录!
我将不胜感激!
我为我的完整 JOIN 创建了 UNION,我得到了这个
ID DataA DataB 1
1 DataA1
2 DataA2
3 DataA3
4 DataA4
5 DataA5
6 DataA6 DataB6
7 DataA7 DataB7
8 DataA8 DataB8
9 DataA9 DataB9
10 DataA10 DataB10
11 DataB11
12 DataB12
13 DataB13
14 DataB14
15 DataB15
现在,如何将这两列合并为一个?并消除重复并放入一列?
【问题讨论】:
-
这样的事情可能会有所帮助 [stackoverflow.com/questions/19615177/…
-
在这种情况下,我通常会创建一个联合查询以将每个表中的所有 ID 放到一个位置,然后在下一个查询中使用联合查询的外连接到每个源表。然后我可以很容易地识别公共记录(ID 存在于两个表中)或源表中的记录而不是另一个(2 个 ID 中的一个在源表中为空)。
-
添加类似“Data:iif(dataAnull,dataA,dataB)”的字段 - 取决于您希望它们重叠时的结果(如第 6-10 行)。您可以在 Union 查询或基于 Union 构建的第二个查询中添加该字段,这可能更容易,这也是我会做的。
-
@DonGeorge 谢谢 :)
-
@DonGeorge 你能给我一个例子,说明你如何编写联合以将两个表中的所有 ID 放到一个地方,最后你说你在下一个中使用从联合到每个源表的外连接查询...
标签: ms-access vba ms-access-2007 ms-access-2010