如何从MySQL中的单个表中获取不同的计数

时间:2012-03-07 06:03:11

标签: mysql sql database

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

  • SrNo。
  • CLASSID
  • StudentId
  • StudentName
  • 状态
  • 创作日期
  • 修改日期

和另一个名为studentE的表 哪个有字段

  • SrNo。
  • CLASSID
  • studentId
  • studentAdd
  • EID

- 我想查看学生的状态,我只有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)的状态,那么如何从上面的查询单个查询中计算出来我能够计算单个状态,我想要多个状态

1 个答案:

答案 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