sql - 连接两个表时返回 SQL 中的唯一值
问题描述
我有一个问题,我很难解决如何使用内部连接实际连接两个表的问题,其中显示的返回值只能是两个表上的唯一值。
例如:如果表 A 包含:
ID Name
-------------------
1 Andy
2 Anthony
3 Sandy
和表 B:
ID Job
----------------------
1 Student
1 Entrepreneur
3 CEO
它将只返回 Sandy 作为 CEO,而不是返回 ANDY 作为学生和企业家的工作。
非常感谢您的时间和关注。
解决方案
一个简单的连接和聚合似乎在这里工作:
SELECT a.ID, MAX(a.Name) AS Name, MAX(b.Job) AS Job
FROM TableA a
INNER JOIN TableB b
ON b.ID = a.ID
GROUP BY a.ID
HAVING COUNT(*) = 1;
演示
这里的逻辑是内部连接过滤掉 A 表中的人员,而 B 表中根本没有任何匹配项。对于那些确实有匹配的人,我们仅通过检查计数来保留单个工作匹配。
推荐阅读
- tensorflow - 如何计算自定义数据集上的 TF 对象检测 API 精度?
- python - 尝试打印值时,tensorflow会话停止
- list - 回收器适配器在调用 notifydatasetchanged() 时未更新
- android - 使用自定义视图优化 Viewpager
- javascript - 如何使用 jQuery 将 div id 添加到 div?
- php - Laravel API 资源在控制器方法中不起作用
- asp.net-mvc - 如何将模型用作 Kendo UI 网格的数据源?
- reactjs - ReactJS 确保只有对象的所有者可以编辑/删除
- haskell - 使用 Haskell 的 Persistent 库时处理数据完整性的最佳实践是什么?
- java - 使用spring的Java异步保存/更新数据到数据库