liuyang000 2019-12-17
1.查询所有的课程的名称以及对应的任课老师姓名 SELECT course.cname, teacher.tname FROM teacher INNER JOIN course ON teacher.tid = course.teacher_id cname tname 生物 张磊老师 物理 李平老师 美术 李平老师 体育 刘海燕老师
2.查询平均成绩大于80分的同学的姓名和平均成绩 SELECT student.sname, t1.ag FROM student INNER JOIN ( SELECT score.student_id, AVG( score.num ) AS ag FROM score GROUP BY score.student_id HAVING AVG( score.num ) > 80 ) AS t1 ON t1.student_id = student.sid; sname ag 张三 82.2500 刘三 87.0000
3.查询没有报李平老师课的学生姓名 SELECT sname FROM student WHERE student.sid NOT IN ( SELECT student_id FROM score WHERE course_id IN ( SELECT DISTINCT cid FROM teacher INNER JOIN course ON teacher.tid = course.teacher_id WHERE tname = '李平老师' ) ); sanme 刘三 刘一 刘二 刘四
4.查询没有同时选修物理课程和体育课程的学生姓名 SELECT sname FROM student WHERE sid IN ( SELECT student_id FROM ( ( SELECT * FROM score INNER JOIN course ON cid = course_id WHERE course.cname = '物理' OR course.cname = '体育' ) AS t1 ) GROUP BY student_id HAVING COUNT( student_id ) = 1 ); sname 理解 钢蛋 刘三
5.查询挂科超过两门(包括两门)的学生姓名和班级 SELECT t2.caption, t2.sname FROM ( ( SELECT * FROM class INNER JOIN student ON cid = class_id ) AS t2 ) WHERE sname IN ( SELECT sname FROM student WHERE sid IN ( SELECT student_id FROM score WHERE num < 60 GROUP BY student_id HAVING COUNT( student_id ) >= 2 ) ); caption sname 三年二班 理解