我有一个名为-studentId_t的表
有字段:


编号
班级号
学生卡
学生姓名
状态
创立日期
修改日期


和另一个名为studentE的表
有田野


编号
班级号
学生卡
学生添加
Id


-
我想检查学生的状态,我只有E_id

我正在尝试查询..

SELECT COUNT(1) AS ST FROM `StuInfo`.`studentId_t` S, `StuInfo`.`studentE` SE
    WHERE S.`status` = 'ST'
    AND SE.`studentId` = S.`studentId`
    AND SE.`EId` = 1


但是在这里,我想在(ST,BS,BH,GN)中计算状态,所以如何在上述查询中的单个查询中计算它我能够计算单个状态,我想要多个状态

最佳答案

在面向所有状态的SUM()条件下使用if,else

尝试如下:

SELECT SUM(if(status='ST',1,0))  AS ST , SUM(if(status='BS',1,0))  AS   BS,
SUM(if(status='BH',1,0))  AS BH,SUM(if(status='GN',1,0))  AS GN
FROM StuInfo.studentId_t S, StuInfo.studentE SE
WHERE S.status IN ('ST', 'BH','BS','GN') AND SE.studentId = S.studentId AND SE.EId = 1

关于mysql - 如何从MySQL中的单个表中获取不同的计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9596591/

10-08 22:16
查看更多