我正在开发一个Access数据库,在其中我需要提取几个报告。对于其中一个,我需要比较两个数字列表,List1和List2(我从两个单独的查询得到)并且只显示List1中但不在List2中的那些数字。
有人可以帮忙吗? 谢谢。
答案 0 :(得分:3)
其他人在SQL中提供了一些很好的答案,但您可能希望使用Access的一些内置功能。</ p>
当我在查询屏幕中时(在Access XP / 2002中,但对于Access 2003应该是相同的),我可以单击New
,然后有一个Find Unmatched Query Wizard
选项。这将引导您完成一系列对话框,帮助您设置要查找的查询。在完成此向导之前,您需要已经定义了“List1”和“List2”(来自您的示例)。
完成此设置后,您将能够看到Access如何创建查询,这是一种很好的学习方式。
答案 1 :(得分:2)
您可以使用LEFT OUTER JOIN
SELECT T1.val
FROM table1 T1
LEFT OUTER JOIN table2 T2 ON T1.Val = T2.Val
WHERE T2.VAL IS NULL;
答案 2 :(得分:1)
SELECT some_value
FROM table1
WHERE some_value not in ( select some_value from table2);
答案 3 :(得分:0)
SELECT *
FROM (
SELECT number
FROM …
) query1
WHERE query1.number NOT IN
(
SELECT number
FROM …
) /* query2 */