我有以下 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/