首页 > 解决方案 > 进行查询以显示不匹配的数据

问题描述

我很难进行在 2 个表之间显示不匹配数据的查询。这些表是:

Employee data                   Salary data
ID  Holidays               ID      Holiday
1    10                    0       10
2     8                    1        5
3     5                    2        8
4     7                    3        5
5     8                    7        6
6     5                    8        9
7     6                    9        2
8     9                    10       3

主键是两个表的 ID。

我希望我的查询结果包含两个表中不匹配的所有值。我想要的输出类型是这样的:

ID    Holiday
0       10
1       10
1        5
4        7 
5        8
6        5
9        2
10       3

我尝试使用不匹配的查询向导,但它只比较 ID,而不是 Holiday 列。请帮我!

标签: sqldatabasems-accessms-access-2007ms-access-2016

解决方案


您可以使用两个存在查询的联合:

SELECT ID, Holiday FROM Employee as e
WHERE NOT EXISTS (SELECT 1 FROM Salary as s WHERE s.ID = e.ID AND s.Holiday = e.Holiday)
UNION ALL
SELECT ID, Holiday FROM Salary as s
WHERE NOT EXISTS (SELECT 1 FROM Employee as e WHERE e.ID = s.ID AND e.Holiday = s.Holiday);

推荐阅读