为什么进行比较value,以null返回false,使用时除外NOT IN,它返回true?
给定查询以查找具有帖子的所有stackoverflow用户:
SELECT * FROM Users
WHERE UserID IN (SELECT UserID FROM Posts)
Run Code Online (Sandbox Code Playgroud)
这按预期工作; 我得到一个有帖子的所有用户的列表.
现在查询逆; 找到所有没有帖子的stackoverflow用户:
SELECT * FROM Users
WHERE UserID NOT IN (SELECT UserID FROM Posts)
Run Code Online (Sandbox Code Playgroud)
这不返回任何记录,这是不正确的.
给出假设数据1
Users Posts
================ ===============================
UserID Username PostID UserID Subject
------ -------- ------- ------ ----------------
1 atkins 1 1 Welcome to stack ov...
2 joels 2 2 Welcome all!
... ... ... ...
399573 gt6989b ... ...
... …Run Code Online (Sandbox Code Playgroud)