PostgreSQL – 完全外连接
PostgreSQL FULL OUTER JOIN 或 FULL JOIN 通过组合 LEFT JOIN 和 RIGHT JOIN 的结果来创建结果集。结果集将包含两个表中的所有行。没有匹配的行,结果集将包含 NULL 值。
Syntax:
SELECT table1.column1, table1.column2, table2.column1, ....
FROM table1
FULL JOIN table2
ON table1.matching_column = table2.matching_column;
or,
SELECT table1.column1, table1.column2, table2.column1, ....
FROM table1
FULL OUTER JOIN table2
ON table1.matching_column = table2.matching_column;
table1: First table.
table2: Second table
matching_column: Column common to both the tables.
FULL OUTER JOIN 的维恩图如下:
在本文中,我们将使用示例 DVD 租赁数据库,此处进行了说明,可以通过单击示例中的此链接进行下载。
示例 1:
在这里,我们将使用示例数据库中的“film”表和“actor”表查询所有电影和电影演员。
SELECT
title,
first_name,
last_name
FROM
film f
FULL OUTER JOIN actor a
ON a.actor_id = f.film_id;
输出:
示例 2:
在这里,我们将使用示例数据库中的“电影”表和“语言”表查询所有电影和电影的语言。
SELECT
title,
name
FROM
film f
FULL OUTER JOIN language l
ON l.language_id = f.film_id;
输出: