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;
输出: