A表:姓名              是否合格
--------------------
张三              合格
李四              合格
王五              合格
赵六              合格
....如何判断该表下所有姓名都是否合格?  合格即满足条件,反之如有一个不合格则不满足条件。

解决方案 »

  1.   

    select '不合格' from A表 where 是否合格!='合格' limit 1
      

  2.   

    不是这个意思。A表:姓名              是否合格       班级
    --------------------------
    张三              合格               1
    李四              合格               1
    王五              合格               2
    赵六              不合格           3
    ....
    B表:班级             评价
    --------------------------
    1                 全合格
    2                 非全合格
    3                 非全合格如何实现,如果该班全部人都合格,B表该班的评价则为全合格,反之如果有一个人不合格,则该班的评价为非全合格。这个sql语句怎么写?
    update B 评价 ='全合格' where ....  
      

  3.   

    update b left join (select 班级 from a where 是否合格='不合格' group by 班级) t on b.班级=t.班级
    set b.评价=IF(b.班级 is null,'全合格','非全合格')
      

  4.   

    UPDATE TB4 A1 LEFT JOIN
    (SELECT * FROM TA4 A WHERE NOT EXISTS(SELECT 1 FROM TA4 WHERE A.`班级`=`班级` AND `是否合格`='不合格')) B
     ON B.`班级`=A1.`班级`
    SET A1.`评价`=COALESCE(B.`是否合格`,'非全合格 ');