我有一個查詢以我不會期望的方式行事。當請求不在空集的項目時返回空集
我有兩個表,stagin_users
和users
。在這兩個表中,我有一個名爲name
的列。在users
表中,name
的EVERY值是NULL
。在staging_users
我有13行沒有NULL值。我試圖運行一個查詢,在那裏我得到了暫存表中名稱不在users
表中的所有用戶。
我的書面查詢:
SELECT name FROM staging_users WHERE name NOT IN (SELECT name FROM users);
由於編寫查詢,我沒有得到任何結果回來。這種行爲的原因是什麼?
由於users
表只具有NULL值,我知道我可以說WHERE name IS NOT NULL
,我會得到相同的結果,但我想這個查詢針對表中的值,而這一切正好是NULL
工作。
可能重複的[MySQL的選擇x從WHERE NOT IN(SELECT X選自B) - 意外的結果](http://stackoverflow.com/questions/1001144/mysql-select-x-from -a-where-in-select-x-from-b-unexpected-result) – 2014-08-28 16:57:26
NULL被看作是'unknown',這使得查詢排序無效。 – RST 2014-08-28 17:18:46