SQL的INTERSECT
語法用于返回兩個或多個SELECT語句的公共結果集。它允許你找到多個查詢共有的行。
基本語法如下:
SELECT column1, column2, ...
FROM table1
WHERE condition
INTERSECT
SELECT column1, column2, ...
FROM table2
WHERE condition;
在這個例子中,table1
和table2
是你想要從中檢索數據的表,column1
、column2
等是列名,而condition
是篩選數據的條件。
請注意,每個SELECT語句都必須包含與另一個SELECT語句中相同數量的列,并且這些列的數據類型必須兼容。此外,每個SELECT語句中的列名也必須是相同的(或者至少是等價的,即具有相同的名稱和數據類型)。
INTERSECT
操作符返回的結果集包含所有在兩個查詢中都出現的行。如果某個行只在一個查詢中出現,那么它就不會出現在結果集中。
這是一個簡單的例子來說明INTERSECT
的用法:
假設我們有兩個表,employees_old
和employees_new
,它們都有employee_id
、first_name
和last_name
列。我們想要找出同時在這兩個表中工作的員工的名字。我們可以使用INTERSECT
來實現這個目標:
SELECT first_name, last_name
FROM employees_old
WHERE employee_id IN (SELECT employee_id FROM employees_new)
INTERSECT
SELECT first_name, last_name
FROM employees_new
WHERE employee_id IN (SELECT employee_id FROM employees_old);
在這個例子中,我們首先從employees_old
表中選擇了所有在employees_new
表中也有的員工的first_name
和last_name
。然后,我們使用INTERSECT
來找出同時也在employees_new
表中工作的員工的名字。注意,這里我們使用了子查詢來找出在另一個表中有記錄的員工ID。