正确使用MySQL中的COUNT函数
P粉203648742
P粉203648742 2024-04-04 13:50:47
0
1
383

我有 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粉203648742
P粉203648742

全部回复(1)
P粉759451255

您可以使用 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;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板