sql - 进行查询以显示不匹配的数据
问题描述
我很难进行在 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 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);
推荐阅读
- kubernetes - 多个 pod 在 Kubernetes 上使用相同的数据库
- java - og 方法的返回值从不使用
- java - Gradle 项目同步失败
- sql - Oracle SQL Developer - 插入输出错误时,顺序触发器仍然递增
- swift - 由于 URLQueryItems 的顺序,单元测试一直失败
- vuejs2 - 如何使用带有 chart-js 的 Vue 组件制作动态图表
- php - 获取数组结果然后与数据库配对
- c++ - 如何在我的 C++ 代码中获得运行时的双重免费错误
- python - 在 python 的 [] 中使用 break 或 continue 会出错
- sql - 尝试使用 Openrecordset 结果时出现运行时错误 438