SQL查询之左连接、右连接、内连接

本文介绍了数据库查询中的内连接、左连接和右连接,通过实际例子说明了如何在SQL中使用这些连接类型,包括它们的匹配规则和返回结果的区别。


当涉及数据库查询时,连接(join)是一种强大的工具,用于从多个表中检索相关数据。在本博客中,我将向读者介绍数据库中连接的两种主要类型:内连接(Inner Join)和外连接(Outer Join)

from(表)+连接查询

  • 例子中涉及的表
  • StudentInfoEntity:全校学生的信息(主键pk:studentID)
  • ScoreEntity:学生考试的成绩(并不全包含全校学生)(外键fk:studentID)
  • 前提:需要表之间有关联字段

1、内链接(Inner join)

内连接是最常见的连接类型之一,它基于两个表之间的匹配条件来检索数据。当执行内连接时,只有满足匹配条件的行才会被返回。内连接的语法通常如下:
在这里插入图片描述
例1.查出这两个表中共有的信息(as为表的别名,方便)

select score.studentID,score.score,s.CollegeID,s.major,s.majorClass
from ScoreEntity as score 
inner join StudentInfoEntity as s 
on score.studentID=s.studentID 
where score.CollegeID=02

在上面的示例中,ScoreEntity 和 StudentInfoEntity 是待连接的两个表,而 studentID 是用来进行匹配的列名。内连接返回的结果集将包含两个表中共同满足匹配条件的行。在这里插入图片描述

2、左连接(Left join)

左外连接:返回左表的所有行,以及与之匹配的右表的行,如果没有匹配的行,将会用 NULL 值填充。
是以左表为基础,根据ON后给出的两表的条件将两表连接起来。
结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分(null)。
在这里插入图片描述
左外连接:左表的值会全部显示出来,右表的值显示on条件搜索的的结果,搜索不到为NULL

例1.两个表作左外连接

select score.studentID,score.score,s.CollegeID,s.major,s.majorClass
from  StudentInfoEntity as s 
left join ScoreEntity as score 
on s.studentID=score.studentID 

在这里插入图片描述

3、右连接(Right join)

右外连接:返回右表的所有行,以及与之匹配的左表的行,如果没有匹配的行,将会用 NULL 值填充。
是以右表为基础,根据ON后给出的两表的条件将两表连接起来。
结果会将右表所有的查询信息列出,而左表只列出ON后条件与右表满足的部分。
在这里插入图片描述
右外连接与左外连接相反(右表的值全部显示出来)
例1.两个表作右外连接

select score.studentID,score.score,s.CollegeID,s.major,s.majorClass
from  ScoreEntity as score 
right join StudentInfoEntity as s 
on s.studentID=score.studentID 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值