我的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));