繁体   English   中英

我的SQL查询不正确

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM