我有一个名为 - studentId_t
的表格
有字段:
和另一个名为studentE
的表
哪个有字段
- 我想查看学生的状态,我只有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)的状态,那么如何从上面的查询单个查询中计算出来我能够计算单个状态,我想要多个状态
答案 0 :(得分:4)
USE 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