📜  PostgreSQL – 左连接

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

PostgreSQL – 左连接

PostgreSQL LEFT JOIN 返回连接左侧表的所有行以及连接右侧表的匹配行。右侧没有匹配行的行,结果集将包含空值。 LEFT JOIN 也称为LEFT OUTER JOIN。

Syntax:
SELECT table1.column1, table1.column2, table2.column1, ....
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;


table1: First table.
table2: Second table
matching_column: Column common to both the tables.

我们来分析一下上面的语法:

  • 首先,使用 SELECT 语句指定我们希望从中选择数据的表。
  • 其次,我们指定主表。
  • 第三,我们指定主表连接到的表。

下面的维恩图说明了 PostgreSQL LEFT JOIN 子句的工作:

在本文中,我们将使用示例 DVD 租赁数据库,此处进行了说明,可以通过单击示例中的此链接进行下载。

现在,让我们看几个例子。



示例 1:
这里我们将使用 LEFT JOIN 子句将“film”表连接到“inventory”表。

SELECT
    film.film_id,
    film.title,
    inventory_id
FROM
    film
LEFT JOIN inventory ON inventory.film_id = film.film_id;

输出:

示例 2:
这里我们将使用 LEFT JOIN 子句将“film”表连接到“inventory”表,并使用 WHERE 子句过滤掉不在库存供应中的电影。

SELECT
    film.film_id,
    film.title,
    inventory_id
FROM
    film
LEFT JOIN inventory ON inventory.film_id = film.film_id
WHERE
    inventory.film_id IS NULL;

输出: