SQL Left Join

时间:2020-02-23 14:32:30  来源:igfitidea点击:

在本文中,我们将重点关注SQL Left Join。
SQL联接帮助我们根据预定义的条件将不同表的列关联在一起。

所以,让我们开始吧!

SQL左联接的工作

" SQL Left Join"将左表的所有记录与恰好与数据条件匹配的右表的特定记录相关联和联接。

也就是说,它使用SQL中的某些关系运算符比较两个表的值,然后显示Left表的所有数据值以及仅满足条件的right表的那些记录。

现在让我们关注左连接的结构。

左联接的语法

看看下面的语法!

SELECT columns
FROM table_1
LEFT JOIN table_2
ON table_1.column-name = table_2.column-name;

如上所述,执行上述查询后,将显示满足上述条件的左侧表(表_1)中的所有数据记录以及右侧表(表_2)中的所选记录。

SQL Left Join执行后返回以下值

  • 左表中的所有记录

  • 从右表中选择的记录与左表记录与条件匹配。

  • 对于与左表不匹配的右表记录,返回" NULL"。

左连接示例

在下面的示例中,我们使用SQL创建和插入查询创建了两个表" Stud_Info"和" Stud_score",如下所示:

create table Stud_Info(stud_id integer, Name varchar(200), sub varchar(200));
 
insert into Stud_Info(stud_id, Name, sub) values(001, 'John','Maths');
 
insert into Stud_Info(stud_id, Name, sub) values(002, 'Mary','Science');
 
insert into Stud_Info(stud_id, Name, sub) values(003, 'Ray','Social Science');
 
insert into Stud_Info(stud_id, Name, sub) values(004, 'Jim','History');
 
insert into Stud_Info(stud_id, Name, sub) values(005, 'Rick','Geo');
 
create table Stud_score(stud_id integer, Score Integer);
insert into Stud_score(stud_id, score) values(001, 25);
insert into Stud_score(stud_id, score) values(002, 45);
insert into Stud_score(stud_id, score) values(005, 46);
insert into Stud_score(stud_id, score) values(004, 68);
insert into Stud_score(stud_id, score) values(007, 100);

此外,我们对两个表值都应用了左联接。

SELECT Stud_Info.stud_id, Stud_Info.Name, Stud_score.score
FROM Stud_Info
LEFT JOIN Stud_score ON Stud_Info.stud_id = Stud_score.stud_id
ORDER BY Stud_Info.stud_id;

结果,将显示左表的所有值,并且仅显示与右表中条件匹配的记录。
将显示一个NULL值来代替与条件不匹配的记录。