php - MySQL group_concat 并与另一个 group_concat 嵌套

标签 php mysql sql group-concat

不确定标题是否正确解释了情况,但我会尽力在这里解释。

我有一个表,其中有 3 个字段链接到其他表,我想按以下方式对所有行进行分组:

item_id, user_id, group_id
   1        2         3
   2        2         3
   3        4         5
   4        2         4

在我的查询中,我希望所有 items_id 以逗号分隔的格式按 group_id 分组,我在 WHERE 子句上也有一些额外的条件,这就是内部连接的原因

我可以用这个查询来做

 "SELECT 
    GROUP_CONCAT( DISTINCT A.item_id ) AS ids
    FROM tableA A
    INNER JOIN tableB B ON(tableA.id = tableB.id)
   WHERE xxxxx
  GROUP BY A.group_id

 "

稍后我可以循环结果并使用逗号分隔来内部循环结果中的每个 id

但我也想按 user_id 对它进行分组,以便做这样的事情

foreach( query_results.... ){
      foreach( group_id.... ){
           foreach( item_id.... ){
                 // Display info
           }
      }
 }

对此有什么想法吗?

最佳答案

使用子查询,我们可以获得两个项目,用户作为两个单独的列

select T1.group_id, T1.itemids, T2.userids

FROM 
(SELECT group_id,
    GROUP_CONCAT( DISTINCT A.item_id ) AS itemids
    FROM table1 A
group by group_id) T1
INNER JOIN
(
SELECT 
    group_id, GROUP_CONCAT( DISTINCT A.user_id ) AS userids
    FROM table1 A
group by group_id
  ) T2
on T1.group_id = T2.group_id

关于php - MySQL group_concat 并与另一个 group_concat 嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26063932/

相关文章:

php - 将 Artisan 注入(inject) Service 类

MySQL连接查询4张表

mysql - 如何获得每周出现的计数

mysql - 在 MySQL 中创建 View 时遇到问题

javascript - JS 在 "return array(' html' => $response 中不起作用);"

php - jquery 序列化和 $.post

MySQL:加入 SELECT 语句问题

php - 查询多个条件

SQL 格式时间对象从 24 小时到 12 点

PHPExcel 需要很长时间才能读取 Excel 文件