我使用的是oracle 11g。我想知道爲什麼這兩個查詢給出不同的答案?爲什麼這兩個選擇語句不'給出相同的答案
邏輯上它們是相同的:
select * from tableA where
exists (select * from tableB where tableA.ID != tableB.ID);
select * from tableA where
not exists (select * from tableB where tableA.ID = tableB.ID);
中的第一個
我我選擇的是不存在的每一件事。
在第二個我沒有選擇一切存在。
音符(「存在」改變爲「不存在)和(」!=」改爲‘=’)
看起來一樣吧?但他們給完全不同的答案
+1,但第一種情況可能有多於1行:第二行必須在ID字段中包含「空」。 – ThinkJet
@ThinkJet。 。 。這是一個好點。謝謝。 –