【发布时间】:2013-10-25 13:58:55
【问题描述】:
我有两个数据表。这两个表都有一个CUSTOMER_ID 列(它是数字)。我正在尝试获取CUSTOMER_ID 的所有唯一值的列表并且知道CUSTOMER_ID 是否存在于两个表中或仅存在于一个表中(以及哪一个)。
我可以轻松获得唯一CUSTOMER_ID的列表:
SELECT tblOne.CUSTOMER_ID
FROM tblOne.CUSTOMER_ID
UNION
SELECT tblTwo.CUSTOMER_ID
FROM tblTwo.CUSTOMER_ID
我不能只在SELECT statemtn 中添加一个标识符列(例如:SELECT tblOne.CUSTOMER_ID, "Table1" AS DataSource),因为这样记录就不会是唯一的,它会同时获取两组数据。
我觉得我需要在此查询中的其他位置添加它,但不确定如何。
为清楚起见进行编辑:
对于联合查询输出,我需要一个额外的列,它可以告诉我我看到的唯一值是否存在于:(1) 两个 表、(2) 表一或 (3)表二。
【问题讨论】:
-
访问是否支持派生表? select * from (子查询代码) x
-
问题是“和哪一个”这句话......这增加了难度:)
-
@Apostolos - 是的,我需要为此添加的
DataSource列提供三个可能的值:'both'、'tblOne'、'tblTwo'。或者它可能是 BLANK,然后是 'tblOne' 和 'tblTwo'。我只需要知道两者中都有哪些 CUSTOMER_ID,如果没有,它们在哪里。 -
没关系我删除了我的答案,因为我使用了完全外连接,ms-access 不支持
标签: sql ms-access unique union