暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL连接 | 在两表中查询关联的数据

米宏Office 2022-06-09
99

我的目标:让中国的大学生走出校门的那一刻就已经具备这些Office技能,让职场人士能高效使用Office软件为其服务。支持我,也为自己加油!


微语:  在每个无法重来的日子里,对自己好点,幸福是养自己的心,不是养别人的眼!

昨天我们学习了SQL中的JOIN关键词,了解了通过JOIN可以建立两表间的连接,从而可以查询关联信息,今天分享下SQL中的四种连接:内连接、左连接、右连接、全连接。


案例如下:

数据源中的学生表如下:


成绩表如下:



仔细观察,我们可以看出,学生表中的A022、A023对应的学号在成绩表中不存在,成绩表中学号S018、S019在学生表中不存在。

1、如果想查询两个表中都存在的学号对应的学生数学成绩,这就是内连接,即你有我有大家有,交集的概念。


语句:
select [学生$].姓名,[成绩$].学号,[成绩$].数学 from [学生$] inner join [成绩$] on [学生$].学号= [成绩$].学号

2、查询学生表中的学生对应的数学成绩,不管他有没有成绩,即左表有右,边有没有不关心,这就是左连接。


语句:
select [学生$].姓名,[成绩$].学号,[成绩$].数学 from [学生$] left join [成绩$] on [学生$].学号= [成绩$].学号

3、查询成绩表中学号对应的姓名及其成绩记录,及以右表为主,不管左表中有没有对应的姓名。


语句:
select [学生$].姓名,[成绩$].学号,[成绩$].数学 from [学生$] right join [成绩$] on [学生$].学号= [成绩$].学号

4、查询两个表中的所有信息,没成绩的、没对应名字的记录全部包括。这就是所谓的全连接。

全连接语法本该如下:
select [学生$].姓名,[成绩$].学号,[成绩$].数学 from [学生$] full  join [成绩$] on [学生$].学号= [成绩$].学号
或者是:
select [学生$].姓名,[成绩$].学号,[成绩$].数学 from [学生$] full outer join [成绩$] on [学生$].学号= [成绩$].学号

可惜的是在Excel中此方法行不通,得用变通的办法。


语句:
select [学生$].姓名,[成绩$].学号,[成绩$].数学 from [学生$] left join [成绩$] on [学生$].学号= [成绩$].学号 union select [学生$].姓名,[成绩$].学号,[成绩$].数学 from [学生$] right join [成绩$] on [学生$].学号= [成绩$].学号

即左连接合并右连接

预告:下一节课学习通过别名简化列或者是表名的表达。


6月15日

Excel函数培训班招生进行中

110个函数,40节课

每节课都有练习

课程包答疑

需要参加培训的朋友

请私聊我,微信:527240310



本节先分享到这里,祝大家每天都有进步。

打开以下公众号,点击,服务→云课堂

系统学习Office知识,

购买的课程包素材答疑哦!

↙点击“阅读原文进入米宏学院

文章转载自米宏Office,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论