如何使用 MySQL 对每个组的用户进行计数?

发布于 2024-12-19 10:38:59 字数 259 浏览 1 评论 0原文

我有一个组表:

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

我有一个用户表:

  • username -- 唯一字符串(主键)
  • group_id -- 指向组的外键链接。 id

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

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

I have a table of groups:

  • id -- a unique ID (primary key)
  • group -- a group name

I have a table of users:

  • username -- a unique string (primary key)
  • group_id -- a foreign key link to group.id

In this case, a user is only going to be in one single group. So, in MySQL, how do I list out groups and their count of member users?

I tried using a subselect and count, but it ends up showing the same count on all groups.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

二智少女猫性小仙女 2024-12-26 10:38:59
SELECT group.id,COUNT(users.username) FROM groups
INNER JOIN users ON users.group_id=groups.id
GROUP BY groups.id

如果您想根据 @Michael 的评论显示空组,则可以使用 LEFT JOIN

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

You can use a LEFT JOIN instead if you want to display empty groups per @Michael's comment

吲‖鸣 2024-12-26 10:38:59
select g.group, count(*) as group_count
from groups g, users g
where g.id=u.group_id
group by g.groupname
select g.group, count(*) as group_count
from groups g, users g
where g.id=u.group_id
group by g.groupname
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文