我試圖運行一個查詢,查詢存在於子查詢中的表中的所有記錄。MySQL WHERE EXISTS評估爲真所有記錄
但是,它正在返回所期望的所有記錄。
下面是該查詢:
SELECT DISTINCT x FROM T1 WHERE EXISTS
(SELECT * FROM T1 NATURAL JOIN T2 WHERE T2.y >= 3.0);
我試圖測試子查詢和返回的滿足我的約束記錄正確的號碼。
但是,當我運行整個查詢時,它會返回應該不存在於子查詢中的記錄。
爲什麼EXISTS對T1中的所有記錄都評估爲真?
這工作!謝謝,我會盡快接受這個答案。我確實對關聯vs連接有一些困惑。爲什麼大腦的表現總是這樣呢? – jor 2014-09-26 02:47:16
你的行爲始終如一,因爲第二個查詢是完全獨立的,因此表中的每個記錄都存在被評估表中的每個記錄。即沒有辦法將子查詢結果與T1中的任何特定行對齊,因此所有行都被返回。 – 2014-09-26 03:00:14