首页 > 解决方案 > 过滤掉整个记录 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 上存在的缺失值

标签: sqlsql-server

解决方案


采用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)

推荐阅读