从其中另一个表中不存在其字段组合的表中删除记录

时间:2017-11-08 13:59:53

标签: sql sql-server tsql

我有两张桌子:

CREATE TABLE MyTable1
(
    ID INT,
    txtName VARCHAR(100), 
    txtValue VARCHAR(100),  
)

CREATE TABLE MyTable2
(
    ID INT,
    txtName VARCHAR(100), 
    txtValue VARCHAR(100),  
)

我想删除MyTable2txtNametxtValue字段未分配到MyTable1中的记录的所有记录。请告诉我如何使用SQL实现此目的。

1 个答案:

答案 0 :(得分:3)

使用not exists()

delete t2
from MyTable2 t2
where not exists (
  select 1
  from MyTable1 t1
  where t1.txtName = t2.txtName
    and t1.txtValue = t2.txtValue
    )

rextester演示:lazy_static