我正在尝试使用多个表从一个表中删除一些数据。我遇到的这个查询的问题是它正在删除不应该删除的数据。我只想删除两个表中 ID 不同的数据。换句话说,我想保留两个表中的 ID 相同的情况。这是我的查询:
delete Tabel1
from Table1 r join
Table2 w on r.ID <> w.ID
and w.Date_Assigned is not null
最佳答案
您可能想做:
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
然后你就会明白问题出在哪里。
关于sql-server - 在 SQL Server 中使用多个表删除一张表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14113882/