sql - 如何从表中获取其他两个表中不存在的*记录
问题描述
我想获取一个表的所有列的所有记录,这些记录不在其他 2 个表中。请帮忙。
我已经尝试过以下查询,它可以很好地比较一列。但我想比较 5 列。
select * from A
WHERE NOT EXISTS
(select * from B b where b.id=a.id) AND
NOT EXISTS
(select * from C c where c.id=a.id)
解决方案
一般解决方案可能如下所示:
SELECT t1.*
FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2 WHERE t2.id = t1.t2_id) AND
NOT EXISTS (SELECT 1 FROM table3 t3 WHERE t3.id = t1.t3_id);
这假设您要定位记录,确保在和table1
中找不到匹配项。table2
table3
推荐阅读
- openshift - 使用带有 Openshift/jenkins-client-plugin 的 Pipeline 从 Dockerfile 构建映像
- android - CardStackView 的滑动功能在 Android 片段中不起作用
- r - 正则表达式:拆分字符串时如何保留所有数字?
- android - 将支付集成到 Delphi Android 应用程序
- ruby-on-rails - 以嵌套形式更新 many_to_many 关联
- c# - 如何用串口数据编写自己的Get/Request函数?
- postgresql - Postgresql 仅索引扫描速度
- wordpress - 没有阅读笔记的权限
- firebase - 离子 | 安装 cordova-plugin-firebase 和 cordova-plugin-firebase-analytics 时出现重复符号错误
- android - 在 Android 上加载某些 URL 时,WebView 不显示任何内容