[英]Something is Wrong with my SQL Query NOT EXISTS
我一直在看这个,不明白为什么我没有得到结果集,这是我的疑问
SELECT UserID FROM @SelectedID
SELECT UserID FROM @SelectedIdValue
SELECT UserID FROM @SelectedID WHERE NOT EXISTS (SELECT UserID FROM @SelectedIdValue
这是返回的结果集
如您所见,第二个结果集中不存在194,为什么我没有返回194? 我在这里使用NOT EXISTS
错误吗?
您需要一个相关的子查询:
SELECT UserID
FROM @SelectedID si
WHERE NOT EXISTS (SELECT 1
FROM @SelectedIdValue siv
WHERE si.UserId = siv.UserId
);
您的查询版本仅对所有行返回false。 子查询返回一个值,因此存在某些内容。
编辑:
如果需要,可以将其表述为left outer join
:
SELECT si.UserID
FROM @SelectedID si LEFT OUTER JOIN
@SelectedIdValue siv
ON si.UserId = siv.UserId
WHERE siv.UserId IS NULL;
存在子查询仅检查用户ID是否存在,而不检查其值。 如果将“不存在”替换为“用户ID不在”,则查询将返回预期结果。 请注意,当列中存在空值时,尽管“输入”无法正常工作,但在使用“输入”之前,请验证是否可行。
SELECT userid
FROM @SelectedID
WHERE userid NOT IN (SELECT userid
FROM @SelectedIdValue)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.