sql-server - 在 SQL Server 中使用多个表删除一张表中的数据

标签 sql-server t-sql

我正在尝试使用多个表从一个表中删除一些数据。我遇到的这个查询的问题是它正在删除不应该删除的数据。我只想删除两个表中 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/

相关文章:

sql-server - datetime2 存储大小

sql-server - 如何使用docker-compose放入bash shell?

sql - 在同一 select 语句中引用创建的列

sql - 在Sql Server中将2个数字相除

sql - 将字符串拆分到表中

sql - 在多行的值之间进行选择

python - 存储过程未使用 sqlalchemy/pyodbc 提交

sql - 没有聚合函数和行分组的分组依据

sql - 在 SQL Server 中创建 XML 时,如何将值包装在 CDATA 标记中?

sql - 跨多个服务器复制数据 SQL