首页  >  问答  >  正文

正确使用MySQL中的COUNT函数

我有 2 张桌子,这是我的小提琴 http://sqlfiddle.com/#!9/da5e4e/3

所以基本上我有2个表,分别称为personal和interview_score,其中personal.id = Interview_score.personal_id。

假设这是我的 personal

id  name
1   John Doe
2   Nian
3   Rijali

这是我的 interview_score

id  personal_id aspect_id
1   1   1
2   1   2
3   1   3
4   2   1
5   2   2

在这种情况下,我只想使用此查询计算我的 interview_score 表中有多少个personal_id

SELECT COUNT(i.id) as interviewed FROM personal p LEFT JOIN interview_score i ON i.personal_id = p.id GROUP BY i.personal_id;

但它返回就像这样

interviewed
0
3
2

同时,我的预期结果是这样的

interviewed
2

因为在该表上有2个基于该条件的personal_id。

我错在哪里?

P粉203648742P粉203648742216 天前357

全部回复(1)我来回复

  • P粉759451255

    P粉7594512552024-04-05 13:08:43

    您可以使用 join 而不是 left join,并且还需要按 p.id 进行分组

    SELECT COUNT(i.id) as interviewed FROM personal p  JOIN interview_score i ON i.personal_id = p.id GROUP BY p.id;

    从上面的查询中你可以得到计数

    获取特定人员的计数

    SELECT COUNT(i.id) as interviewed FROM personal p  JOIN interview_score i ON i.personal_id = p.id and p.id=1 GROUP BY p.id;

    回复
    0
  • 取消回复