嘿我在计算小组成员人数时遇到问题。我现在拥有的查询针对给定用户所属的每个组返回一行。但是我也希望成员数量也能出现。 im使用的三个表如下所示:
这是我正在使用的查询:
看编辑!
如果我忽略了代码的COUNT部分,则会收到我期望的2个组。但是,当我添加COUNT时,它仅返回一个成员数为2的组。所以看来它很重要,但是我不确定这是正确的答案。
提前致谢!
最佳答案
假设您关注的是用户1所属的每个组中的参与者总数...
SELECT gu1.group_id_foreign
, COUNT(*) ttl
FROM group_participants gu1
JOIN group_participants gu2
ON gu2.group_id_foreign = gu1.group_id_foreign
WHERE gu1.user_id_foreign = 1
GROUP
BY gu1.group_id_foreign;
http://sqlfiddle.com/#!2/821ad/1
顺便说一句,group_participants表中的_id列似乎没有任何作用,按照我的想法,您的命名约定简直是虚假的! ;-)