为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第12天+MySQL刷题-01

标签:
测试
模块名
描述
课程名称
全能软件测试工程师
课程章节
MySQL刷题
打卡知识进程
知识进程:12 / 21
1.node.js初体验windows
2.commonjs-回顾ES6模块化
3.commonjs的语法介绍
4.commonjs和ES6 Module的区别
5.Bug分类
6.node.js和前端js的区别
7.左关联
8.聚合函数
9.【案例】统计上班时间
10.数据库的索引
11.索引的分类
12.查询数学成绩比语文成绩高的学生
主讲老师
大周
学习开始时间
2023.02.17 20:48
学习结束时间
2023.02.17 21:57
总计时
69 min
课程收获/主要内容/编程目标
查询数学成绩比语文成绩高的学生
学习感受/感想/领悟(心得)
我应该去工作。

编程目标:查询数学成绩比语文成绩高的学生
怎么做呢?
学生表:

分数表:

课程表:

假设有三张表:一张是学生表,包含学生ID(id)和学生姓名(student_name)两个列;
另一张是课程表,包含课程ID(id)和课程名称(course_name)两个列;
第三张表是分数表,包含学生ID(student_id)、课程ID(course_id)两个列。

要查询数学成绩比语文成绩高的学生,可以使用以下SQL语句:

select yw.student_id,yw.student_name,
sx.score,sx.course_name,
yw.score,yw.course_name
from
(select sc.student_id,st.student_name,sc.course_id,c.course_name,sc.score
from student st
join score sc on st.id = sc.student_id
join course c on sc.course_id = c.id
where c.course_name = "语文") yw
join
(select sc.student_id,st.student_name,sc.course_id,c.course_name,sc.score
from student st
join score sc on st.id = sc.student_id
join course c on sc.course_id = c.id
where c.course_name = "数学") sx
on yw.student_id = sx.student_id
where yw.score < sx.score;

运行结果:

大体思路:
1)yw 这个SQL语句将从学生表、分数表和课程表三个表中选择所有语文成绩的学生,
并返回他们的姓名、课程名称、分数等。

使用JOIN语句将三张表【学生表、分数表和课程表】连接起来,以便在查询中使用学生姓名和课程名称。
WHERE子句用于筛选出语文课程。

2)sx 这个SQL语句将从学生表、分数表和课程表三个表中选择所有数学成绩的学生,
并返回他们的姓名、课程名称、分数等。

使用JOIN语句将三张表【学生表、分数表和课程表】连接起来,以便在查询中使用学生姓名和课程名称。
WHERE子句用于筛选出数学课程。
3)
最外面一层 这个SQL语句将从学生表、yw 表和sx 表三个表中选择所有数学成绩比语文成绩高的学生,
并返回他们的姓名、数学课程、数学分数、语文课程、语文分数等。
并过滤出数学成绩比语文成绩高的学生。

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消