使用SQL Server中的多个表从一个表中删除数据

时间:2013-01-01 20:20:10

标签: 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 个答案:

答案 0 :(得分:3)

您可能想要这样做:

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

你会明白问题所在。