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 資料表:
| CustomerID | CustomerName |
|---|---|
| 1 | 張一 |
| 2 | 王二 |
| 3 | 李三 |
orders 資料表:
| OrderID | CustomerID | Product |
|---|---|---|
| 1 | 1 | 蘋果 |
| 2 | 1 | 香蕉 |
| 3 | 3 | 橘子 |
使用 EXISTS 搭配 WHERE 子句查詢有下過訂單的客戶:
SELECT CustomerName
FROM customers c
WHERE EXISTS
(SELECT 1 FROM orders o WHERE o.CustomerID = c.CustomerID);
查詢結果如下:
| CustomerName |
|---|
| 張一 |
| 李三 |
留言功能已關閉。