我正在尝试使用 SELECT 查询从表变量中删除一些数据。以下代码完美运行:
DECLARE @sgID int
SET @sgID = 1234
DELETE FROM
@tbl_users
WHERE
(userID NOT IN (
SELECT
userID
FROM
[SGTable]
WHERE
(sgID = @sgID)
))
我正在尝试加快此查询,并阅读以下方法可能会更好。但是,当我使用以下代码时 - 所有记录都从表变量中删除。
DELETE
tmp
FROM
@tbl_Users tmp INNER JOIN
[SGTable] sgu ON sgu.userID = tmp.userID
WHERE
(sgu.sgID <> @sgID)
我(显然错误地)假设这两个查询做了同样的事情(删除表变量中的所有用户 ID,其中在子查询中找不到用户 ID)。谁能提供一些关于使第二个查询工作的建议,因为它显然更容易阅读和维护?