首页 文章

如何选择两个(或更多)表中不存在的记录

提问于
浏览
0

我有3个帐户表,都包含相同的字段 . 表1包含所有帐户,而表2和表3包含帐户的子集 . 我正在尝试在Table1中选择Table2或Table3中不存在的记录 .

假设表布局是这样的,并且对于所有3个表都是相同的:| AcctNum | Name | State |

我知道怎么做如果它只是Table1和Table2,使用左连接和Is Null,但是第3个表扔给我 . 这可以在一个查询中执行吗?你能结合左连接吗?我应该指出我正在使用Access 2010 .

3 回答

  • 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));
    
  • 0

    您可以使用Access创建名为 TableCombined 的视图,该视图是 Table2Table3 的并集 .

    此时,您可以使用 left join and Is Null 查询并将 TableCombined 加入 Table1 .

    希望这可以帮助!

  • 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)
    

相关问题