【发布时间】:2022-01-21 07:26:47
【问题描述】:
DELETE a
FROM TableA a
JOIN TableB b ON a.Field1 = b.Field1 AND a.Field2 = b.Field2;
对比
DELETE
FROM TableA
WHERE Field1 IN (
SELECT Field1
FROM TableB
) AND Field2 IN (
SELECT Field2
FROM TableB
);
【问题讨论】:
-
你的问题到底是什么?
-
第一个删除语句更精确,因为 Field1 和 Field2 必须在 TableB 的同一行内匹配。第二个 delete 语句可能会删除意外的行,因为 Field1 和 Field2 可以匹配 TableB 中的不同行。
-
@DaleK 两个查询的区别
-
你无法解决的差异是什么?你问他们是否删除不同的记录?如果他们的表现不同?上下文是什么?您是如何遇到 2 个您不确定的查询的?实际的最终目标是什么?
标签: sql sql-server tsql