(NOT) EXISTS 運算子 (SQL (NOT) EXISTS Operator)

EXISTS 運算子可以連接子查詢,用來判斷子查詢是否有返回的結果,如果有結果返回則為真、否則為假。若 EXISTS 為真,就會繼續執行外查詢中的 SQL;若 EXISTS 為假,則整個 SQL 查詢就不會返回任何結果。
NOT EXISTS則是相對於EXISTS,判斷為假才會繼續執行外查詢。

EXISTS 運算子查詢實例 (Example)

我們以 IN 運算子來與 EXISTS 作一比較,下列兩個 SQL 查詢皆會返回同樣的結果:

SELECT * FROM table_a WHERE EXISTS(SELECT * FROM table_b WHERE table_b.id=table_a.id);
相當於
SELECT * FROM table_a WHERE id in (SELECT id FROM table_b);

MySQL目前還不支援EXISTS。