我有以下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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句