嘿我在计算小组成员人数时遇到问题。我现在拥有的查询针对给定用户所属的每个组返回一行。但是我也希望成员数量也能出现。 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列似乎没有任何作用,按照我的想法,您的命名约定简直是虚假的! ;-)

07-24 09:37