sql语句问题一下午了,脑袋疼,就是出不了结果。。。。。。。

我的sql语句:首先,我要求的是,查询选休了5门课程的学生的学号和姓名。。学号就算是学生的ID吧
图片说明
图片说明
图片说明
图片说明
现在的四张图片就是那三张表格。下面附上我写的sql语句。
SELECT s.sid,s.sname from t_student s,t_sc sc where s.sid=sc.sid GROUP BY s.sid,s.sname having count(sc.code)=5;结果就是出不来只能出来这个
图片说明

SELECT s.sid,s.sname from t_student s,t_sc sc where s.sid=sc.sid GROUP BY s.sid,s.sname having count(sc.scid)=5

遇到这种问题,先改下sql成如下:
SELECT s.sid,s.sname,count(sc.code) As codeNum from t_student s,t_sc sc where s.sid=sc.sid GROUP BY s.sid,s.sname
结果应该是:
1,小明,6
2,小芳,1

然后在加上你的限制条件:having count(sc.code)=5
明显就没有结果啊

你先要知道你要的结果,然后再去写sql,count(sc.code)没搞清楚你的需求是啥,难道是:有且只有5个科目成绩的学生信息?

有6门课程,你却=5.所以不行。>=5

不是应该等于6嘛。。

select sid,sname from t_student where sid in(select sid from t_sc group by sid having count(sid)=5)

select sid,sname from t_student where sid in (select sid from (select max(sid) sid , count(sid) amount from t_sc group by sid) a where a.amount>=5));