查找成绩表中所有成绩超过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;

但这种写法也存在问题,如果有人缺考,缺考的记录又不记录的话,这个人就被认为合格了,所以,这种情况下必须要把缺考记录也放进去.