PostgreSQL Left Join左连接
在本节中,我们将了解ostgreSQL Left join的工作原理,它用于从左表返回数据。我们还学习了如何使用表别名、WHERE 子句、USING 子句,以及如何在 PostgreSQL Left join 子句的帮助下连接多个表。
什么是 PostgreSQL Left Outer Join 或 Left Join 子句?
PostgreSQL LEFT JOIN或Left Outer Join用于返回满足 ON 条件中定义的连接条件的左表中的所有行和其他表中的行。如果在右表中没有找到对应的记录,则返回null。
Left Join也称为Left Outer Join子句。因此,Outer是可选关键字,用于Left Join中。在PostgreSQL中,Left join与Inner Join条件平行。
下面的维恩图展示了 PostgreSQL 的Left join,我们可以很容易地理解Left Join返回 Left 表中的所有数据和Right 表中的类似数据:
PostgreSQL 左连接语法
Left Join关键字与SELECT命令一起使用,必须写在FROM关键字之后。
SELECT columns
FROM table1
LEFT [OUTER] JOIN table2
ON table1.column = table2.column;
在上面的语法中,table1指的是左表,table2指的是右表,这意味着特定条件将根据定义的连接条件返回table1中的所有记录和table2中匹配的记录。
我们将按照以下步骤在Left 或 Left Outer Join条件的帮助下连接Left 和 Right 表:
- 首先,我们将从两个表中定义列列表,我们要在SELECT条件中选择数据。
- 然后,我们将定义左表,即FROM子句中的表 1 。
- 最后,我们将描述右表,即Left JOIN条件中的表2,并将连接条件写在ON关键字之后。
PostgreSQL 左连接示例
让我们看一个例子来理解PostgreSQL Left join是如何工作的:
使用 PostgreSQL Left Join 连接两个表
为此,我们将在 CREATE 命令的帮助下创建两个名为Client和Orders表的表,并使用INSERT commandM插入一些值。
首先,我们将使用CREATE命令创建Client 和 Orders表:
CREATE TABLE Client(
client_id int primary key,
client_name varchar not null,
client_profession varchar not null,
client_qualification varchar not null,
client_salary int );
下面的命令用于创建一个Orders表:
Create table Orders
(client_id int primary key,
order_id int not null,
price int,
order_date Date Not null);
执行以上命令后,Client表和Orders表就创建成功了。
一旦两个表都生成了,我们就可以使用INSERT命令向其中插入一些值,如下所示:
INSERT INTO Client (client_id, client_name,
client_profession, client_qualification, client_salary)
VALUES
(1, 'Emma Hernandez','Web Designer','BTech', 25000),
(2, 'Mia Clark','Software Engineer','BE',20000),
(3, 'Noah Rodriguez','Bussinessman','MBA',50000),
(4, 'Martha Brown','Doctor','MBBS',75000),
(5,'James Luther','HR','MBA',35000),
(6,'Maria Garcia','Astronaut','Msc', 100000),
(7,'Robert Smith','Software Tester','BTech',30000);
在下面的命令中,我们在Orders表中插入值:
INSERT INTO Orders (client_id, order_id, price, order_date)
VALUES
(1, 101, 2000,'2020-05-14'),
(2, 102, 3500,'2019-08-30'),
(3, 103, 4000,'2020-06-23'),
(4, 104, 2500,'2017-12-11'),
(5, 105, 5000,'2018-10-26');
在Client 和 Orders表中创建并插入值后,我们将在执行以下命令时获得以下输出:
表一:Client表
Select * from Client;
表二:Orders表
Select * from Orders;
执行完上面的命令后,我们会从Orders表中获取数据:
下面的查询用于从两个表(客户和订单)中选择记录:
SELECT Client.client_id, client_name, order_date, price
FROM Client
LEFT JOIN Orders
ON Client.client_id = Orders.client_id;
或者我们在上面的查询中使用Left Outer Join 关键字代替Left Join 关键字,因为两者都会给出类似的输出:
SELECT Client.client_id, client_name, order_date, price
FROM Client
LEFT Outer JOIN Orders
ON Client.client_id = Orders.client_id;
执行上述命令后,我们将得到以下结果:
热门文章
优秀文章