如何使用MySQL计算每组用户数?

时间:2011-12-05 20:11:20

标签: mysql sql count group-by sql-subselect

我有一个小组表:

  • id - 唯一ID(主键)
  • 组 - 组名

我有一个用户表:

  • 用户名 - 唯一字符串(主键)
  • group_id - 指向group.id的外键链接

在这种情况下,用户只会在一个组中。那么,在MySQL中,如何列出组及其成员用户数?

我尝试使用子选择并计数,但它最终显示所有组的相同计数。

2 个答案:

答案 0 :(得分:7)

SELECT group.id,COUNT(users.username) FROM groups
INNER JOIN users ON users.group_id=groups.id
GROUP BY groups.id

如果要根据@ Michael的评论

显示空组,则可以使用LEFT JOIN

答案 1 :(得分:0)

select g.group, count(*) as group_count
from groups g, users g
where g.id=u.group_id
group by g.groupname