select `学号`,`姓名` from 
(SELECT `学号`,`姓名`,group_concat(`成绩` order by `月份` SEPARATOR " ") as total from cj group by `学号`) as a 
where left(total,6)='0 0 0 ' or right(total,6)=' 0 0 0' or instr(total,' 0 0 0 ')>0不知道行不行,效率低,还好数据比较少("连续三个月"比较麻烦)

解决方案 »

  1.   

    (SELECT `学号`,`姓名`,group_concat(`成绩` order by `月份` SEPARATOR " ") as total from cj 是不是先查出所有成绩为0的学生?
      

  2.   

    如果可以改动表的话,改改表增加个月份字段(下个月的月份)学号;月份;下月月份;成绩;姓名;1    200606  200607    0     aaa
    并在月份上建索引。sql:
    select * from cj as a,cj as b,cj as c where a.下月月份=b.月份 and b.下月月份=c.月份 and a.成绩=0 and b.成绩=0 and c.成绩=0;
      

  3.   

    哈,少写了点东西select * from cj as a inner join cj as b on a.学号=b.学号 and a.下月月份=b.月份 inner join cj as c on b.学号=c.学号 and b.下月月份=c.月份 where a.成绩=0 and b.成绩=0 and c.成绩=0 group by a.学号;