交集 INTERSECT

在 SQL 中進行資料連接

Maham Faisal Khan

Senior Content Developer, DataCamp

INTERSECT 維恩圖

三個維恩圖的圖片,其中兩個淡化,只有標示 INTERSECT 的圖清晰可見。該圖有兩個重疊的圓,僅重疊部分為綠色。

在 SQL 中進行資料連接

INTERSECT 示意圖

一個示意圖顯示左右兩個資料表。圖右側展示對兩個資料表執行 INTERSECT 後的結果。

在 SQL 中進行資料連接

INTERSECT 語法

SELECT id, val
FROM left_table

INTERSECT
SELECT id, val FROM right_table;
在 SQL 中進行資料連接

兩欄位的 INTERSECT vs. INNER JOIN

INTERSECT 語法

SELECT *
FROM left_table
INTERSECT
SELECT *
FROM right_table;

一個示意圖顯示左右兩個資料表。圖右側展示對兩個資料表執行 UNION 的結果。

INNER JOIN 語法

SELECT l.id, l.val
FROM left_table AS l
INNER JOIN right_table AS r
  ON l.id = r.id
      AND l.val = r.val;

一個示意圖顯示左右兩個資料表。圖右側展示對兩個資料表執行 INNER JOIN 的結果。

在 SQL 中進行資料連接

同時有總理與總統的國家

SELECT country as intersect_country
FROM prime_ministers
INTERSECT
SELECT country
FROM presidents;
| intersect_country |
|-------------------|
| Egypt             |
| Portugal          |
| Pakistan          |
| India             |
在 SQL 中進行資料連接

對兩個欄位做 INTERSECT

SELECT country, prime_minister AS leader
FROM prime_ministers
INTERSECT
SELECT country, president
FROM presidents;
|-----------|----------|
| country   | leader   |
|-----------|----------|
|-----------|----------|
在 SQL 中進行資料連接

同時有總理與君主的國家

SELECT country, prime_minister AS leader
FROM prime_ministers
INTERSECT
SELECT country, monarch
FROM monarchs;
|---------|--------------------|
| country | leader             |
|---------|--------------------|
| Brunei  | Hassanal Bolkiah   |
| Oman    | Haitham bin Tarik  |
|---------|--------------------|
在 SQL 中進行資料連接

一起來練習吧!

在 SQL 中進行資料連接

Preparing Video For Download...