进行查询以显示不匹配的数据

问题描述 投票:0回答:1

我难以进行查询以在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列。请帮助我!

sql database ms-access ms-access-2007 ms-access-2016
1个回答
0
投票

您可以使用两个存在的查询的并集:

SELECT ID, Holiday FROM Employee e
WHERE NOT EXISTS (SELECT 1 FROM Salary s WHERE s.ID = e.ID AND s.Holiday = e.Holiday)
UNION ALL
SELECT ID, Holiday FROM Salary s
WHERE NOT EXISTS (SELECT 1 FROM Employee e WHERE e.ID = s.ID AND e.Holiday = s.Holiday);
© www.soinside.com 2019 - 2024. All rights reserved.