我难以进行查询以在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列。请帮助我!
您可以使用两个存在的查询的并集:
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);