GROUP_CONCAT无法按预期工作

时间:2017-12-20 05:54:35

标签: mysql group-by inner-join having having-clause

我有很多关系。 Projects表,projects_users表和users表。我正在尝试返回项目列表及其关联用户。以下是我正在使用的查询,该查询有效,但只显示单个用户,当我知道应该有更多时:

    SELECT
        projects.id,
        `projects`.`project_name`,
        ( GROUP_CONCAT(DISTINCT `users`.`name`  separator ', ' ) ) AS staff,
FROM `projects`
    INNER JOIN `projects_users` ON (`projects_users`.`project_id` = `projects`.`id` )
    INNER JOIN `users` ON (`users`.`id` = `projects_users`.`user_id` ) 
    GROUP BY projects.id, `projects_users`.`user_id` 
    HAVING (`projects_users`.`user_id` = 8)

有几个用户与每个项目相关联,我希望返回类似于"用户1,用户2,用户3和#34;的内容。相反,我只得到"用户1。"

1 个答案:

答案 0 :(得分:1)

由于您需要聚合每个项目的用户,因此您应该根据user_id进行分组:

 if(userdataarray[0] != 0 && userdataarray[0] != nil)
 {
  userdataarray[0] = myByteArray[0]
 }
 else
{
 userdataarray[0] = 32 //Which is space in ascii
 userdataarray[0] = myByteArray[0]
}