PostgreSQL Right Join17 Mar 2025 | 6 分钟阅读 在本节中,我们将了解 PostgreSQL 右连接 的工作原理,它用于从右表中返回数据。我们还将学习如何使用 表别名、WHERE 子句、USING 子句以及通过 PostgreSQL 右连接子句 连接多个表。 什么是 PostgreSQL 右外连接或右连接子句?PostgreSQL 右连接 或 右外连接 用于返回右表中的所有行,以及其他表中满足 ON 条件中定义的 连接 条件的行。如果从 左表 中未找到对应的记录,它将返回 空值。 右连接 也可以称为 右外连接 子句。因此,外键 是在 右连接 中使用的可选关键字。在 PostgreSQL 中,右连接 与 左连接 条件平行,但它将给出连接表的相反结果。 下图显示了 PostgreSQL 右连接,我们可以轻松地理解 右连接 从 右表 返回所有数据,并且仅从 左表 返回相似的数据 ![]() PostgreSQL 右连接语法右连接关键字与 SELECT 命令一起使用,并且必须写在 FROM 关键字之后。 在以上语法中,table1 指的是 左表,table2 指的是 右表,这意味着特定条件将从 table 2 返回所有记录以及 table1 中符合定义的 连接条件 的记录。 我们将按照以下步骤通过 右连接或右外连接 条件连接 左表和右表
注意:在 PostgreSQL 右连接中,如果表包含相似的列名,则 USING 和 ON 子句会产生相似的输出。PostgreSQL 右连接示例让我们看一个示例,了解 PostgreSQL 右连接 的工作原理 使用 PostgreSQL 右连接连接两个表为此,我们将使用我们在 PostgreSQL 内连接 部分中创建的 员工和部门 表格的 PostgreSQL 教程。 表 1:员工 要查看 员工 表的记录,我们将使用 SELECT 命令,如下面的命令所示 ![]() 表 2:部门 要从 部门 表中查看记录,我们将使用 SELECT 命令,如下面的命令所示 输出 执行上述命令后,我们将从 部门 表中获取数据 ![]() 以下查询用于从两个表(员工和 部门)中选择记录 输出 一旦我们实现了上述命令,我们将获得以下结果 ![]() PostgreSQL 右连接的工作原理
注意:我们可以说右连接选择右表中的所有行,即使它们与左表中的行不相似。使用 PostgreSQL 右连接进行表别名通常,我们要连接的表将具有相似名称的列,例如 emp_id 列。 我们将使用 表别名 为连接的表分配短名称,以使命令更易于理解。 在下面的命令中,我们将使用表别名,它会返回与上面相似的结果 输出 一旦我们实现了上述命令,我们将得到以下输出 ![]() 使用 USING 子句的 PostgreSQL 右连接在本节中,我们将看到 PostgreSQL 右连接如何与 USING 子句一起使用。 例如, 上面的表 员工和部门 包含一个相似的列,即 emp_id;因此,在这种情况下,我们使用 USING 子句来获取表中的值。 在以下命令中,我们在 右连接 中使用了 USING 子句,该子句将返回值 emp_id、emp_fname、emp_lname、dept_name 和 location,因为两个表都有一个相似的列:emp_id。 输出 执行上述命令后,我们将得到以下结果 ![]() 使用 WHERE 子句的 PostgreSQL 右连接如果我们想从右表(部门)中确定在左表(员工)中没有任何匹配行的行,我们可以将 WHERE 条件与 右连接 一起使用。 正如我们在以下命令中看到的那样,我们正在从表 员工 和 部门 中选择行,其中 dept_name 等于 'RESEARCH' 输出 成功执行上述命令后,它将给出以下输出 ![]() 使用 PostgreSQL 右连接连接多个表在上一节中,我们有两个表 员工和部门,现在,如果我们要连接两个以上的表并从该特定表中获取记录。在这种情况下,我们将使用右连接。 例如,在这里我们将采用我们在 PostgreSQL 教程的 PostgreSQL 内连接部分中创建的 Jobs 表。 要查看 Jobs 表的值,我们将使用 SELECT 子句,如下所示 表 3:Jobs ![]() 我们将使用 PostgreSQL 右连接 连接三个表,例如 员工、部门和 Jobs,如下面的命令所示 输出 成功执行上述命令后,我们将给出以下结果 ![]() 通过使用 PostgreSQL 右连接子句获取不匹配的记录如果我们要获取表中与其他表没有任何相似数据行的的数据,那么在这种情况下,我们将使用 PostgreSQL 右连接子句。 正如我们在下面的示例中看到的那样,右连接子句用于识别 员工 的 Job_description 为 Null 输出 一旦我们实现了上述命令,我们将得到以下结果 ![]() 概述在 PostgreSQL 右连接 部分,我们学习了以下主题
下一主题PostgreSQL 全连接 |
我们请求您订阅我们的新闻通讯以获取最新更新。