0
我對着在sqlite的以下難題,並且不知道是否有什麼我失蹤約SQLite的話是行不通的。SQL:「NOT IN(SUBQUERY)」如預期
基本上,當我問一個表中總唯一值,我得到一個數字。當我詢問第二個表中存在的這些值的子集時,我會得到更小的數字。但是,當我問子集的恭維,我得到0
考慮兩個表,A和B,通過一個唯一的ID,我們可以稱之爲WIDGET_ID表示部件的不同,但重疊的人羣。
我收到以下行爲:
SELECT COUNT(DISTINCT WIDGET_ID)
FROM A
輸出:100
SELECT COUNT(DISTINCT WIDGET_ID)
FROM A
WHERE WIDGET_ID IN (SELECT WIDGET_ID FROM B)
輸出:75
SELECT COUNT(DISTINCT WIDGET_ID)
FROM A
WHERE WIDGET_ID NOT IN (SELECT WIDGET_ID FROM B)
輸出:0
不應該這是不可能?
炸藥。這解決了它。非常感謝,我想這是有道理的。所有SQL方言都是如此嗎? – user1893148
空值有[一些不兼容(http://www.sqlite.org/nulls.html),但空值在在搬運中列出的所有數據是一致的。 –
@ user1893148。 。 。基本上是「是」。 NULL的處理由ANSI SQL標準定義。有一些細微差別,但在所有數據庫中,與'NULL'的比較返回NULL(相當於假),除了特殊比較,例如「IS NULL」。 –