sql - 过滤掉整个记录 SQL
问题描述
我有两个表:TableA 和 TableB
TableA 有 10 条记录,而 TableB 有 8 条记录。
我正在尝试从 TableA 中过滤表 B 上的不同记录,以便我可以将差异移至 TableB。
这是一个传统的、制作不佳的数据库,因此没有唯一标识符。所以它们看起来像这样。
TableA TableB
Col1, Col2, Col3 Col1,Col2,Col3
1 X X Y X X Y
2 X Y Y X Y Y
3 X X X
我想过滤 TableB 上每条记录的值组合,以查找 TableA 上存在的缺失值
解决方案
采用NOT EXIST
select *
from tablea ta
where NOT EXIST (
select 1
from tableb tb
where ta.col1 = tb.col1
and ta.col2 = tb.col2
and ta.col3 = tb.col3)
推荐阅读
- reactjs - Reactjs中的意外行为onMouseOver onMouseLeave
- c - 在 C 中为暴力破解生成有序密码
- r - 在 RMarkdown 中的代码旁边添加按钮以隐藏/显示代码
- c++ - std::memcpy 是否使其目的地确定?
- css - 转换后继续文档流: translateY(-50%)
- export - 如何更改导出的 SSRS 报告的文件名
- java - 如何在 Java FXML 应用程序中初始化 DatePicker?
- java - 如何从一个方法中给出 2 种不同的数据类型
- kdb - .Q.hg 需要什么版本的 openssl?
- networking - 如何使用 gcloud 将静态 IP 附加到虚拟机?