查找成绩表中所有成绩超过60的学生
t_stu(id int,course char(20),grade int);
这个重要的是思路,一个表中同一个人可能有的科目及格,有的不及格,如果正向的话就筛出错误的结果了,反向下ok
先查所有成绩不合格的人,这样只要有一科不合格就筛出来了,然后 not in
select id from t_stu where id not in ( select id from t_stu where grade < 60) group by id;
但这种写法也存在问题,如果有人缺考,缺考的记录又不记录的话,这个人就被认为合格了,所以,这种情况下必须要把缺考记录也放进去.
转载请注明出处.
写博客的目的:记录,升华,量变到质变