使用带有DELETE语句的JOIN时,是否必须确保我的记录只与一行匹配?

时间:2018-03-23 10:32:36

标签: sql sql-server

我有这样的查询:

DELETE A
FROM A
LEFT JOIN B ON
   A.ID=B.ID
WHERE B.Status='OK'

来自这些联接的记录可能会导致多行,例如:

表A

ID
1
2

表B

ID   Status
1    OK
1    OK
2    OK

我必须确保我的记录只与一行匹配吗?因为在这些示例中,ID 1将有2行。

为糟糕的英语道歉。

1 个答案:

答案 0 :(得分:1)

在SQL Server中,必须确保每行删除一行结果。引擎将删除与您的加入或条件匹配的所有删除表,即使它们被选中的行数超过1行。

重要的部分是你删除哪个表,确保不删除错误的表!