mysql查询数据库的成绩高于其平均成绩的学生的姓名?写出打部分来了,但是就是不对,来个大神帮我看看

mysql> select sname from student,sc where student.sno=sc.sno and sc.sno not in 

(select r.sno from (select sno,score from sc,course where sc.cno=course.cno and course.cname='数据库') AS r INNER JOIN

(select sno,avg(score) avg_grade FROM sc group by sno) AS t ON r.sno=t.sno and r.score<t.avg_grade);

http://img.mukewang.com/57ff8dc100011a2319201080.jpg

侠客岛的含笑
浏览 6362回答 3
3回答

一瞬儿光

SELECT sname FROM student WHERE sno in(SELECT sno FROM sc WHERE score >= (SELECT avg(`score`) FROM sc GROUP BY (SELECT cno FROM course WHERE cname='数据库')));

一瞬儿光

SELECT sname from student WHERE sno in(select temp.sno FROM (select sno,avg(score) as avgs FROM sc GROUP BY sno) as temp where temp.sno in(SELECT sc.sno from sc where sc.sno=temp.sno and sc.cno=(SELECT course.cno from course WHERE cname='数据库') and sc.score>=temp.avgs));你的表述就有问题,还0分,无语!!!这会再试试吧

侠客岛的含笑

SELECT sname FROM student WHERE sno in(SELECT sno FROM sc WHERE cno=(SELECT cno FROM course WHERE cname='数据库') and score>=(SELECT avg(`score`) FROM sc group BY sno));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL