PostgreSQL教程

PostgreSQL FULL JOIN

在本节中,我们将了解 PostgreSQL完全连接的工作原理,该操作用于在存在该位置时返回所有记录。是左表或右表记录中的匹配项。我们还学习了如何在 table-aliasing, WHERE子句 中使用 PostgreSQL完全外部连接条款。

什么是PostgreSQL完全连接或完全外部连接条款?

PostgreSQL 完整如果在左表或右表记录中存在匹配项,则Join 或完全外部联接用于返回所有记录。 完全外部联接的主要目标是将 PostgreSQL LEFT Join的结果组合在一起a>和 PostgreSQL右连接子句,并从join子句两侧的表返回所有相似或不匹配的行。
下面的Venn图显示了 PostgreSQL完全外部联接,在这里我们可以很容易地理解完全外部联接从左表和右表:
PostgreSQL完全联接

PostgreSQL完全外部连接的语法

完全外部连接或完全连接的语法如下:
SELECT columns  
FROM table1  
FULL [OUTER] JOIN table2  
ON table1.column = table2.column;  
在上述语法中,完全外部联接关键字与 SELECT命令,并且必须在 FROM 关键字之后编写,而 OUTER 关键字是可选的。
我们将按照以下步骤组合借助完全联接或完全外部联接条件的左和右表:
首先,我们将从两个表中定义列列表,我们要在其中选择 SELECT 条件下的数据。 然后,我们将在 FROM 子句中指定右表,即表2 。 最后,我们将在 Full Outer Join 子句中描述Left表,即表1 ,并在 ON 关键字。

PostgreSQL完全连接示例

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

要使用PostgreSQL完全外部联接来联接两个表

为此,我们将创建两个名为 Summer_fruits 的表,并在CREATE命令的帮助下 Winter_fruits 表,并使用INSERT命令插入一些值。
首先,我们将创建 Summer_fruits 和 Winter_fruits 表,方法是使用CREATE命令:
CREATE TABLE Summer_fruits (
SF_ID int PRIMARY KEY,
Summer_fruits_name VARCHAR (250) NOT null);
以下命令用于创建 Winter_fruits 表:
CREATE TABLE Winter_fruits (
WF_ID int PRIMARY KEY,
Winter_fruits_name VARCHAR (250) NOT null);
夏季水果 和 冬季水果 表已在执行上述命令时成功创建。
两个表都生成后,我们准备使用INSERT命令如下向其中插入一些值:
INSERT INTO Summer_fruits (SF_ID, Summer_fruits_name)
VALUES VALUES(1,'Mango'),
(2,'Watermelon'),
(3,'Apples'), 
(4,'Guava'),
(5,'Pineapple'),
(6,'Musk Melon');
在以下命令中,我们将值插入 Winter_fruits 表:
INSERT INTO Winter_fruits (WF_ID, Winter_fruits_name)
VALUES(1,'Grape'),
(2,'Apples'), 
(3,'Mango'),
(4,'Pears'),
(5,'Pineapple'),
(6,'Cranberries'),
(7,'Bananas');
在 Summer_fruits和Winter_fruits 表中创建并插入值之后,执行以下命令将得到以下输出:
表1: Summer_fruits
Select * from Summer_fruits;
输出
PostgreSQL完全连接
表2: Winter_fruits
Select * from Winter_fruits;
输出
执行以上命令后,我们将从 Winter_fruits 表中获取数据:
PostgreSQL完全联接
以下查询用于从两个表中选择记录( Summer_fruits 和 Winter_fruits ):
SELECT SF_ID, Summer_fruits_name, WF_ID, Winter_fruits_name
FROM Summer_fruits
FULL JOIN Winter_fruits
或者我们在上面的查询中使用完全外部连接关键字代替完全连接关键字,我们将获得类似的输出:
ON SF_ID = WF_ID;
SELECT SF_ID, Summer_fruits_name, WF_ID, Winter_fruits_name
FROM Summer_fruits
Full outer Join Winter_fruits
ON SF_ID = WF_ID;
输出
执行上述命令后,我们将得到以下结果:
PostgreSQL完全连接
工作PostgreSQL完全外部连接
它用于获取左表(Summer_fruits)和右表(Winter_fruits)的记录。 如果 Summer_fruits 中的行( Table1或左表)与 Winter_fruits 中的行( Table2或右)匹配表,那么结果行将包含来自两个表的行列的列。 如果联接表中的行不相似,则对于表的每一列,完全外部联接放置 NULL值。

使用PostgreSQL完全联接的表别名

我们将使用表别名为联接的表分配短名称,以使命令更可以理解,因为有时编写完整的表会使我们陷入繁琐的过程。
在下面的命令中,我们将使用表别名,并且返回类似的结果:
SELECT s.SF_ID, Summer_fruits_name, WF_ID, Winter_fruits_name
FROM Summer_fruits s
FULL JOIN Winter_fruits w
ON s.SF_ID =w.WF_ID;
输出
执行上述命令后,我们将获得以下输出:
PostgreSQL完全联接

使用where子句的PostgreSQL完全联接

我们也可以将完全联接与一个条件。 WHERE子句允许我们返回过滤器结果。
在下面的示例中,我们将从两个表 Summer_fruits 和 Winter_fruits ,其中 Summer_fruits_names 不等于 Mango :
SELECT SF_ID, Summer_fruits_name, WF_ID, Winter_fruits_name
FROM Summer_fruits
FULL JOIN Winter_fruits
ON SF_ID = WF_ID
WHERE  Summer_fruits_name != 'Mango';
输出
在执行上述命令时,我们将获得以下输出:
PostgreSQL完全连接
概述
在 PostgreSQL完全连接或完全外部连接部分中,我们已经学习了以下主题:
我们使用完全连接子句从两个表或两个以上的表中选择数据。 我们将完全连接条件与表别名和WHERE子句一起使用。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4