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

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

被折叠的 条评论
为什么被折叠?



