(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);

上面 SQL 的結果相當於:

SELECT * FROM table_a
WHERE id
in (SELECT id FROM table_b);