join - 使用多列连接
问题描述
如何使用 JOIN 执行以下操作:
Select
id_pk, col1, col2,col
From table1 A
Where NOT EXISTS
(select 1 from table2 B
Where A.id_pk = B.id_pk
and A.col1 = B.col1
and A.col2 = B.col2
);
解决方案
这里不能简单地使用join查询,因为我们知道两张表共享主键id_pk
,我们可以获取满足条件的记录的主键A.id_pk = B.id_pk
(Equi-join),A.col1 = B.col1
和A.col2 = B.col2
。并且我们可以使用这组主键来获取那些主键不匹配的记录NOT IN
。在这种情况下,连接查询作为子查询给出。
询问:
SELECT
id_pk, col1, col2, col
FROM table1
WHERE id_pk NOT IN (
SELECT A.id_pk
FROM table1 A, table2 B
WHERE A.id_pk = B.id_pk
AND A.col1 = B.col1
AND A.col2 = B.col2
);
推荐阅读
- javascript - jQuery 只有数字,只有 2 位小数,只有最大值
- asp.net-mvc - 字段为空时的复选框过滤表
- python - 如何加密密码以检查登录是否正确
- c++ - 每当我在 Visual Studio 代码中运行我的程序时,我都会得到“对‘WinMain’的未定义引用”,谁能解释问题是什么?
- python - 如何在 Keras 中调整 Conv1DTranspose 层的输入大小?
- node.js - 如何在nestjs中手动注入依赖
- android - SwipeRefreshLayout wrap_content 不适用于 Dialogfragment 中的 ListView
- ios - 在 Xcode 中调试时如何更改 let 值?
- azure - ADFv2 在复制活动中发出错误“身份验证失败,因为远程方已关闭传输流”,有什么想法吗?
- python - 查找哪个列对于哪个 excel 工作表数据框是唯一的