Sql server 在SQL Server中使用多个表从一个表中删除数据

Sql server 在SQL Server中使用多个表从一个表中删除数据,sql-server,tsql,Sql Server,Tsql,我正在尝试使用多个表从一个表中删除一些数据。我在这个查询中遇到的问题是,它正在删除不应该删除的数据。我只想删除两个表中ID不同的数据。换句话说,当两个表中的ID相同时,我希望保留。我的问题是: delete Tabel1 from Table1 r join Table2 w on r.ID <> w.ID and w.Date_Assigned is not null 删除选项卡1 从表1到表1 表2 w关于r.ID w.ID 和w.Date_赋值不为空 您可能想做: dele

我正在尝试使用多个表从一个表中删除一些数据。我在这个查询中遇到的问题是,它正在删除不应该删除的数据。我只想删除两个表中ID不同的数据。换句话说,当两个表中的ID相同时,我希望保留。我的问题是:

delete  Tabel1
from Table1 r join
Table2 w on r.ID <> w.ID
and w.Date_Assigned is not null
删除选项卡1
从表1到表1
表2 w关于r.ID w.ID
和w.Date_赋值不为空

您可能想做:

delete Tabel1 where Id not in (select Id from Table2)
您的语句可能会删除
Tabel1
中的所有记录,因为对于每个记录,它都会在
Tabel2
中找到至少一条具有不同
ID
的记录

要测试这一点,只需运行

select r.ID
from Table1 r join
Table2 w on r.ID <> w.ID
and w.Date_Assigned is not null
选择r.ID
从表1到表1
表2 w关于r.ID w.ID
和w.Date_赋值不为空
你就会明白问题是什么