INTERSECT 運算子 (SQL INTERSECT Operator)

相對於 UNION 像是 OR (聯集),INTERSECT 運算子則像是 AND (交集),如果紀錄存在於第一個查詢結果集內同時亦存在於第二個查詢結果集內時,才會被取出。

INTERSECT 語法 (SQL INTERSECT Syntax)

SELECT column_name(s) FROM table_name1
INTERSECT
SELECT column_name(s) FROM table_name2;
兩個SELECT查詢所產生的欄位需要是相同的資料型別及順序。
INTERSECT查詢返回的資料集欄位名稱,通常會依據第一個SELECT查詢的欄位名稱。

INTERSECT 運算子查詢實例 (Example)

這是公司在台灣地區銷售的產品資料表「products_taiwan」:
P_Id P_Name
1 LCD
2 CPU
3 RAM

這是公司在中國大陸地區銷售的產品資料表「products_china」:
P_Id P_Name
1 Keyboard
2 CPU
3 LCD

現在我們想查出在台灣地區及中國大陸地區皆有銷售的產品類別的資料,我們可以作一個 INTERSECT 查詢:
SELECT P_Name FROM products_taiwan
INTERSECT
SELECT P_Name FROM products_china;

查詢結果如下:
P_Name
LCD
CPU

MySQL目前還不支援INTERSECT。