数据库—查询语句中left join怎么用?以及right join怎么用?

   日期:2020-09-25     浏览:102    评论:0    
核心提示:从数据库中查询数据时,会经常使用到多张表的数据,有些数据需要从两张或多张表中共同获取。举个例子,这里有两张表格,分别是学生信息表(表A)、学生成绩表(表B)。stunumstunamemajorage20200101张三软件工程1820200102李莉计算机科学与技术1920200103王五信息技术2020200104张小软件工程20stunumstumnamemathenglishshujujiegou2

从数据库中查询数据时,会经常使用到多张表的数据,有些数据需要从两张或多张表中共同获取。
举个例子,这里有两张表格,分别是学生信息表(表A)、学生成绩表(表B)。

stunum stuname major age
20200101 张三 软件工程 18
20200102 李莉 计算机科学与技术 19
20200103 王五 信息技术 20
20200104 张小 软件工程 20
stunum stumname math english shujujiegou
20200101 张三 67 80 60
20200102 李莉 80 85 89
20200103 王五 75 75 90
20200104 张小 75 75 95

例一 假设我们要查询专业为转件工程的同学的各科成绩,可以看到专业信息在表A,成绩信息在表B,如果我们要查询的话,要以表A为基础,因为首先要查到专业为软件工程专业的学生,这时我们把表A作为左表,用左连接来查询。
查询语句为:

select  A.stunum,A.stuname,A.major,B.math,B.english,B.shujujiegou #查询A表的学号、A表的姓名、A表的专业、以及B表数学、英语、数据结构成绩。
from A left join B #从A与B的左连接表中
where major="软件工程" and  A.stunum=B.stunum #条件是专业为软件工程且学号相等
order by A.stumun asc; 按学号升序排列

查询结果为,从左到右字段分别为学号、姓名、专业、数学分数、英语分数、数据结构分数。

20200101 张三 软件工程 67 80 60
20200104 张小 软件工程 75 75 95

这就是left join的用法,以左表为基础来查询。

例二 假设要查询数据结构分数在80分以上的同学的学号,姓名、专业、年龄。从表中可以看到成绩在表B中,所以要先从表B中查询到数据结构分数大于80分的同学,然后再去表A查询专业、年龄字段。
查询语句为:

select A.stunum,A.stuname,A.major,A.age,B.shujujiegou #查询学号、姓名、专业、年龄、数据结构分数
from A right join B #从A与B的右连接表中
where B.shujujiegou >'80'and A.stunum=B.stunum #条件是数据结构分数大于80且A与B的学号相等
order by B.shujujiegou asc;#按数据结构分数升序排列

查询结果为,从左到右字段分别为学号、姓名、专业、年龄、数据结构分数。

20200102 李莉 计算机科学与技术 19 89
20200103 王五 信息技术 20 90
20200104 张小 软件工程 20 95

这就是right join的用法,以右表基础来查询。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服