PostgreSQL教程

PostgreSQL RIGHT JOIN

在本节中,我们将了解 PostgreSQL右连接的工作原理,该操作用于从Right返回数据。表。我们还将学习如何使用表别名, WHERE子句,USING子句以及如何连接多个表借助 PostgreSQL右连接子句。

什么是PostgreSQL右外部连接或右连接子句?

PostgreSQL右连接或右外部连接用于返回右表中的所有行以及其他表中的行,其中join 条件已满足在ON条件中定义的条件。并且,如果在左表中没有找到相应的记录,它将返回空值。
右联接也可以称为 Right Outer Join 子句。因此,外部是可选关键字,在右连接中使用。在 PostgreSQL 中,右连接与左连接平行条件,但它会给出连接表的相反结果。
下面的维恩图显示了PostgreSQL右连接,在这里我们可以很容易地理解右连接返回所有数据右表中的数据,而左表中的数据类似:
PostgreSQL右连接

PostgreSQL右连接语法

右连接关键字与SELECT命令一起使用,并且必须写在 FROM 关键字。
SELECT columns  
FROM table1  
Right [OUTER] JOIN table2  
ON table1.column = table2.column;  
在以上语法中, table1 指的是左表,而 table2 指的是右表,这意味着特定条件将根据定义的 join条件返回表2 中的所有记录,并返回 table1 中的匹配记录。
在右或右外部连接条件的帮助下,我们将按照以下步骤连接左右表:
首先,我们将从两个表中定义列列表,我们要在其中选择 SELECT 条件下的数据。 然后,我们将在 FROM 子句中定义右表,即表2 。 最后,我们将描述 Right JOIN 条件下的Left表(即表表1 ),并在 ON 之后写入连接条件关键字。
注意: 注意: 在PostgreSQL右连接中,如果表包含相似的列名,则USING和On子句将产生相似的输出。

PostgreSQL右连接示例

让我们看一个示例来了解 PostgreSQL右连接的工作原理:

使用PostgreSQL右连接来联接两个表

为此,我们将使用 Employee and department 表,它是我们在PostgreSQL教程的 PostgreSQL INNER Join部分中创建的。
表1: Employee
要查看 Employee 表的记录,我们将使用SELECT命令,如下面的命令所示:
Select * from Employee;

PostgreSQL右加入
表2: department
要查看 department 表中的记录,我们将使用SELECT命令,如以下命令所示:
Select * from department;
输出
执行上述命令后,我们将从 department 表中获取数据:
PostgreSQL右连接
以下查询用于从两个表中选择记录( Employee 和department):
SELECT department.emp_id,dept_name,location,emp_fname, emp_lname
FROM Employee  
Right JOIN department   
ON department.emp_id = Employee.emp_id  
order by emp_id; 
输出
一旦执行上述命令,我们将得到以下结果:
PostgreSQL右连接

工作PostgreSQL右连接

在上面的命令中, Employee 是左表,而 department 是右表。 PostgreSQL右连接条件从右表(department表)中选择记录。 然后,它等同于 department 表中的 emp_id,dept_name和location 列的值,并将记录与左表( Employee )中每一行的> emp_id 列。 如果这些记录相似,则右连接将创建一个新行,该行在 Select 子句中具有列,并将特定行添加到输出中。 否则,Right联接仍会创建一个新行,其中包含两个表中的列并在结果中添加特定行,并填充左表中的列( Employee )和 NULL 。
注意: 我们可以说,RIGHT JOIN从右表中选择所有行,即使它们与左表中的行没有相似之处。

使用PostgreSQL右联接的表别名

通常,我们要联接的表将具有类似名称的列,例如 the emp_id 列。
我们将使用表别名来分配联接表的短名称,以使命令更易于理解。
在下面命令,我们将使用表别名,它会返回与上面类似的结果:
SELECT e.emp_id, emp_fname, emp_lname,location,dept_name   
FROM Employee e 
INNER JOIN department d 
ON e.emp_id = d.dept_id;
输出
一旦执行了上述命令,我们将获得以下输出:
PostgreSQL右连接

使用USING子句的PostgreSQL右连接

在此,我们将了解PostgreSQL右连接如何与
例如,上述表 Employee and department 包含类似的列,即emp_id;因此,在这种情况下,我们使用USING子句从表中获取值。
在以下命令中,我们使用中的 USING 子句右联接,它返回值 emp_id,emp_fname,emp_lname,dept_name和位置,因为两个表的列均相似: emp_id 。
SELECT emp_id, emp_fname, emp_lname,dept_name,location
FROM Employee  
RIGHT JOIN department   
USING(emp_id);
输出
执行上述命令后,我们将得到以下结果:
PostgreSQL右连接

使用WHERE子句的PostgreSQL右连接

如果我们要标识右表中的行(department)(在左表中没有任何匹配的行(雇员),我们可以将WHERE条件与右联接一起使用。
从下面的命令中可以看到,我们正在两个表中选择行: Employee 和 departmen t,其中<​​strong> dept_name 等于'RESEARCH':
SELECT emp_id, emp_fname, emp_lname,dept_name,location
FROM Employee  
RIGHT JOIN department   
USING(emp_id) WHERE dept_name ='RESEARCH';
输出
成功执行以上命令后,将提供以下输出:
PostgreSQL Right Join

要使用PostgreSQL Right JOIN联接多个表

在上一节中,我们有两个表 <现在,如果我们要联接两个以上的表并从该特定表中获取记录,则strong> 员工和department 。在这种情况下,我们将使用Right连接。
例如,在这里,我们将使用在PostgreSQL教程的PostgreSQL INNER Join部分中创建的 Jobs 表。
要查看工作表的值,我们将使用 SELECT 子句,如下所示:
Select * from Jobs;
表3: 作业
PostgreSQL右连接
我们我们将在 PostgreSQL Right Join 的帮助下连接三个表,例如 Employee,department和Jobs ,如下所示:
SELECT emp_id, emp_fname, dept_name, job_description
FROM Employee 
RIGHT JOIN department USING (emp_id) 
RIGHT JOIN Jobs  
ON department.emp_id = jobs.job_id
ORDER BY emp_id;
输出
成功执行以上命令后,我们将给出以下结果:
PostgreSQL Right Join

使用PostgreSQL Right JOIN子句获取不匹配的记录

如果要从中获取数据该表,其中不包含其他表中的任何相似的数据行,因此在这种情况下,我们将使用PostgreSQL的Right Join子句。
如下面的示例所示,Right join子句用于标识其职位描述 i的员工s 空:
SELECT emp_id, emp_fname, emp_lname, job_description 
FROM Employee
RIGHT JOIN Jobs
ON Employee.emp_id=Jobs.job_id 
WHERE Job_description is null;
输出
一旦执行了上述命令,我们将得到以下结果:
PostgreSQL右连接

概述

在 PostgreSQL右连接部分,我们了解了以下内容主题:
我们将PostgreSQL右连接条件与表别名,USING子句,WHERE子句一起使用,并获取不匹配的数据。 我们使用PostgreSQL右连接子句从两个或更多表(比两个表)中选择数据。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4