sql表连接 —— join

一、内连接 —— INNER JOIN

内连接是最常见的一种连接,只连接匹配的行。

 

表1:

sql表连接 —— join_第1张图片

 

 

表2:

sql表连接 —— join_第2张图片

 

 

执行查询:

select StudentId as 学生编号,StudentName as 姓名,Gender as 性别,Likes as 爱好,ClassName as 所在班级 from Students a
inner join Class b
on a.ClassID = b.ClassId

 

效果:

sql表连接 —— join_第3张图片

 

 二、外连接 —— LEFT JOIN

返回左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替。

还是上面的俩个表,查询语句更改为:

select StudentId as 学生编号,StudentName as 姓名,Gender as 性别,Likes as 爱好,ClassName as 所在班级 from Students a
left join Class b
on a.ClassID = b.ClassId

 

效果:

sql表连接 —— join_第4张图片

 

 

 三、外连接 —— RIGHT JOIN

 返回右表的全部行和左表满足ON条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用NULL代替。

 还是上面的俩个表,查询语句更改为:

select StudentId as 学生编号,StudentName as 姓名,Gender as 性别,Likes as 爱好,ClassName as 所在班级 from Students a
right join Class b
on a.ClassID = b.ClassId

 

效果:

sql表连接 —— join_第5张图片

 

 

四、外连接 —— FULL OUTER JOIN

会从左表 和右表 那里返回所有的行。如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用NULL代替

还是上面的俩个表,查询语句更改为:

select StudentId as 学生编号,StudentName as 姓名,Gender as 性别,Likes as 爱好,ClassName as 所在班级 from Students a
full outer join Class b
on a.ClassID = b.ClassId

 

效果:

sql表连接 —— join_第6张图片

 

 

 

你可能感兴趣的:(sql表连接 —— join)