目录

1.SQL的表格join连接方式

(1)解释说明

(2)语法:tableA inner|left|right|full join tableB on (s)>

即 tableA inner|left|right|full join tableB on <连接字段>

2.left join函数的实例

(1)用法:从另一张表中获取目标列信息进行拼接。

(2)实例


1.SQL的表格join连接方式

(1)解释说明

inner join:内连接/交集连接,意思是两个表格都有的行才返回行数据。

left join:左连接,左表A和右表B连接,只要A表有就返回行数,B表没有对应位置则返回空值。

right join:左连接,左表A和右表B连接,只要B表有就返回行数,A表没有对应位置则返回空值。

full join:全连接/并集连接,左表A和右表B连接,只要A/B有则返回行数,没有的位置对应返回为空值。

(2)语法:tableA inner|left|right|full join tableB on <joint_column(s)>

即 tableA inner|left|right|full join tableB on <连接字段>

joint_column:连接字段/共同字段,一般用唯一且具有代表性两个表共有的字段作为连接字段,是指用于连接两个表的连接字段。比如一个学生信息表与成绩表连接一般用唯一且共同字段即学号ID来连接。

注意:一般情况下,为了节省运行时间以及输出表格数据内存,同时为了获取目标结果,采用left join语法即可解决大部分问题。


2.left join函数的实例

(1)用法:从另一张表中获取目标列信息进行拼接。

类似于Excel中的VLOOKUP函数映射信息

(2)实例

现有三张表,一张表是学生信息情况表student,主要字段是学号ID,姓名name,年龄age,班级class等其它学生信息;一张表是学生选课表course,主要字段有学号st_ID,课程号ID以及选课情况;一张是课程成绩表score,主要字段是课程号ID,语数英成绩分别为Chinese,math,English。

例1:获取学生选课情况的成绩。直接将学生选课表course和课程成绩表score左连接获取。

select *
from course
left join score on course.ID = score.ID

例2:获取学生所有信息,包括学生个人信息以及选课情况的成绩。将三个表左连接起来。

select *
from student
left join course on student.ID=course.st_ID
left join score on course.ID = score.ID

例3:在例2的基础上进行调整,只是获取学生部分信息以及个别门课成绩,包括学生学号、姓名、年龄、班级、math成绩。

select student.ID as ID,name,class,math
from student
left join course on student.ID=course.st_ID
left join score on course.ID = score.ID) as table

注意:从多个表获取数据时,若需要获取的字段名在多个表都存在,无法确认从哪个表获取,需要指定表名即表名.字段,否则会报错。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐