写下SQL语句,查出至少学2门课程的且分数都至少80分的学生,难倒我了。。
两张表
Stu表:
sid(学生编号),
name(学生姓名)
Grade表:
gid(年级表编号),
cid(课程编号),
sid(学生表外键),
grade(课程分数)
写下SQL语句,查出至少学2门课程的且分数都至少80分的学生,难倒我了。。
两张表
Stu表:
sid(学生编号),
name(学生姓名)
Grade表:
gid(年级表编号),
cid(课程编号),
sid(学生表外键),
grade(课程分数)
select s.*
from Stu s, Grade g
where s.sid = g.sid and g.grade >= 80
group by s.sid
having count(s.sid) >=2;
“查出至少学2门课程的且分数都至少80分的学生”这句话有歧义,可以理解为下面两个意思:
1)至少选了两门课,并且至少两门课不低于80分的学生;
2)至少选了两门课,每门课都不低于80分的学生;
从实际考虑,我觉得愿意思应该是1) ,SQL也是按1)的意思写的。如果是2)的话 sql要调整