首页 > 数据库技术 > 详细

Mysql-练习题

时间:2017-02-17 21:27:04      阅读:273      评论:0      收藏:0      [点我收藏+]

技术分享

技术分享
思路:
    获取所有有生物课程的人(学号,成绩) - 临时表
    获取所有有物理课程的人(学号,成绩) - 临时表
    根据【学号】连接两个临时表:
        学号  物理成绩   生物成绩
 
    然后再进行筛选

SELECT a_name,h_name,h_number FROM 
(select (student.student_name)as a_name, (class.class_name)as w_name, (score.number)as w_number from score
left join class on class.class_nid = class_sid
left join student on student_sid = student.student_nid
where class_name = 温泉) as a
LEFT JOIN
(select (student.student_name)as b_name, (class.class_name)as h_name, (score.number)as h_number  from score
left join class on class.class_nid = class_sid
left join student on student_sid = student.student_nid
where class_name = 化学) as b
on a_name = b_name
WHERE h_number > w_number 
查询“生物”课程比“物理”课程成绩高的所有学生的学号;
技术分享
SELECT a_name,avg(w_number) FROM 
(select (student.student_name)as a_name, (class.class_name)as w_name, (score.number)as w_number from score
left join class on class.class_nid = class_sid
left join student on student_sid = student.student_nid
) as a

GROUP BY a_name having avg(w_number) > 60

分组后对聚合函数进行操作 用having
查询平均成绩大于60分的同学的学号和平均成绩
技术分享
SELECT * FROM 
(select (student.student_name)as a_name, (class.class_name)as w_name, (score.number)as w_number,(teacher.teacher_name)as t_name from score
left join class on class.class_nid = class_sid
left join student on student_sid = student.student_nid
left join teacher on class_teacher = teacher.teacher_nid
) as a
where t_name = 波多
查询所有同学的学号、姓名、选课数、总成绩;

 

Mysql-练习题

原文:http://www.cnblogs.com/cloniu/p/6411358.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!