相交 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 与 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             |
| Portgual          |
| 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...