我有两个表:

user_groups

id    name    created_user
1     gn1     3
2     gn2     3


user_group_has_users

group_id    user_id
2           5
2           6


我想计算每个组的用户数和类似的输出:

id    name    user_count
2     gn2     2
1     gn1     0


我试过这个查询

select g.*,
       count(cg.user_id) as user_count
from user_groups as g
left join user_group_has_users as cg on cg.user_group_id = g.id
where g.created_user = 3


但是它只返回一行。我不明白为什么会这样。
请帮我。

最佳答案

使用此查询

SELECT g.* ,COUNT(cg.user_id) AS user_count
FROM user_groups g
LEFT JOIN user_group_has_users cg ON cg.group_id = g.id
WHERE  g.created_user = 3
GROUP BY g.id
ORDER BY user_count DESC ;

关于php - 无法根据情况选择计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29385483/

10-14 14:57