我有一个名为-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/