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