mysql - 如何从每个组中获取成员数以及组详细信息?

标签 mysql database

我有以下 MySQL 表

users      :- user_id (PK)
groups     :- group_id (PK)
user_group :- user_group_id (PK),user_id(F Key),group_id(F Key)

我想知道用户加入了多少个群组以及每个群组的成员数。例如

user1 :- group1,group2
user2 :- group2,group3
user3 :- group1,group3

现在我想要这样的结果

user1:1(user_id)  group1:1(group_id) 2(member count)
user1:1(user_id)  group2:2(group_id) 2(member count)
user2:2(user_id)  group2:2(group_id) 2(member count)
user2:2(user_id)  group3:3(group_id) 2(member count)
user3:3(user_id)  group3:3(group_id) 2(member count)
user3:3(user_id)  group2:2(group_id) 2(member count)

是否可以使用单个查询或者其他更好的方法?

最佳答案

它也可能是一个非常可怕的查询,它会是这样的东西,但会认真推荐以不同的方式来做:(

SELECT users.user_id,groups.group_id,(SELECT COUNT(*) FROM user_group WHERE user_group.group_id=groups.group_id) FROM groups INNER JOIN user_group ON groups.group_id=user_group.group_id INNER JOIN users ON user_group.user_id=users.user_id ORDER BY users.user_id,groups.group_id ASC

关于mysql - 如何从每个组中获取成员数以及组详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28275320/

相关文章:

mysql - SQL 返回包含与主键相关的外键的表列表

php - 同一商品不同采购价格和采购数量如何处理

mysql - 显示父表中子记录少于 4 条的记录

sql - 如何获取属于同一键的多个实例的数据?

mysql - 优化 MySQL 子查询

MySql:连接有重复项的列

javascript - 在 CK Editor 中访问选项卡数据

java - 将android SQLite文本内容转储到textView中

mysql - Illuminate\Database\Query\Builder 类的对象无法转换为字符串,无法在单个查询中从两个数据库中获取数据

php - 为什么我的 PHP Blowfish 加密会产生如此奇怪的结果?