sql - 如何通过比较几个字段而不是其他字段来进行 JOIN
问题描述
我有 2 张桌子
我想根据两个表之间的A、B和C列匹配的条件连接两个表,但是表A中的列D在表B中不存在,前提是A、B和C列匹配。
所以是这样的:
SELECT A.*
FROM tableA A
JOIN tableB B ON A.A = B.A AND A.B = B.B AND A.C = B.C
-- but
A.D NOT IN B.D, where the 3 conditions above match
预期的结果是
表 A:
1 | 3 | 4 | 7
1 | 4 | 5 | 8
是否可以在一个查询中完成?
解决方案
我想你可能想要
SELECT A.*
FROM tableA A
JOIN tableB B
ON A.A = B.A
AND A.B = B.B
AND A.C = B.C
AND B.D <> A.D
根据您的预期结果,您似乎只想要跨 A|B|C 的匹配,而不是跨 A|B|C|D 的匹配
推荐阅读
- php - Drupal 6 与最新版本 php
- excel - 如何比较两个范围值是否相等?
- python - 我在 python3 中的 HTTP 客户端有问题
- javascript - 为什么我的 jquery 循环对来自两个数组的值进行了不正确的比较?
- html - 如何显示天气图标
- angular - 页面加载时 p-dataTable 扩展行
- javascript - 使用粘性导航栏滚动到 div
- ios - 加载资源失败:服务器响应状态为 404(未找到) - iOS 设备 Ionic 3
- excel - Excel 索引,if 和 And
- php - 使用动态下拉过滤器在 URL 中添加/删除 GET 参数