SQL EXISTS

EXISTS 運算子 (SQL EXISTS Operator)

這篇 SQL EXISTS 子查詢教學介紹 EXISTS 運算子的用法。EXISTS 運算子可以連接子查詢,用來判斷子查詢是否有返回的結果,如果有結果返回則為真、否則為假。若 EXISTS 為真,就會繼續執行外查詢中的 SQL 查詢;若 EXISTS 為假,則整個 SQL 查詢就不會返回任何結果。

EXISTS 語法 (SQL EXISTS Syntax)

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

EXISTS 用法 (Example)

假設我們有兩個資料表,customers 和 orders(若需了解如何建立資料表,請參考 CREATE TABLE 教學):

customers 資料表:

CustomerIDCustomerName
1張一
2王二
3李三

orders 資料表:

OrderIDCustomerIDProduct
11蘋果
21香蕉
33橘子

使用 EXISTS 搭配 WHERE 子句查詢有下過訂單的客戶:

SELECT CustomerName
FROM customers c
WHERE EXISTS
(SELECT 1 FROM orders o WHERE o.CustomerID = c.CustomerID);

查詢結果如下:

CustomerName
張一
李三

延伸閱讀

留言功能已關閉。