我有3个帐户表,都包含相同的字段。表1包含所有帐户,而表2和表3包含帐户的子集。我尝试在表1中选择Table2或Table3中不存在的记录。
让我们说表格布局是这样的,并且对于所有3个表格都是相同的: | ACCTNUM |名称|国家|
我知道如果只是Table1和Table2,使用左连接和Is Null,如何做到这一点,但是第3个表正在抛弃我。这可以在一个查询中执行吗?你能结合左连接吗?我应该指出我正在使用Access 2010。
答案 0 :(得分:1)
是的,您可以组合左连接和奇怪的语法Access使用查询应如下所示:
SELECT T1.AcctNum
FROM (Table1 AS T1 LEFT JOIN Table2 AS T2 ON T1.AcctNum = T2.AcctNum)
LEFT JOIN Table3 AS T3 ON T1.AcctNum = T3.AcctNum
WHERE (((T2.AcctNum) Is Null) AND ((T3.AcctNum) Is Null));
答案 1 :(得分:0)
您可以使用Access创建名为 TableCombined 的视图,该视图是 Table2 和 Table3 的并集。
此时,您可以使用left join and Is Null
查询并将 TableCombined 加入 Table1 。
希望这有帮助!
答案 2 :(得分:0)
您还可以执行NOT EXISTS语句,这对于您要实现的目标具有逻辑意义。
例如:
SELECT ACCTNUM
FROM TABLE1
WHERE NOT EXISTS (SELECT TABLE2.ACCTNUM FROM TABLE2 INNER JOIN TABLE3 WHERE TABLE2.ACCTNUM IS NULL AND TABLE3.ACCTNUM IS NULL)