📜  PostgreSQL – 完全外连接

📅  最后修改于: 2022-05-13 01:57:15.964000             🧑  作者: Mango

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;

输出: