【问题标题】:How to list and group same records in diffrent columns?如何在不同的列中列出和分组相同的记录?
【发布时间】:2019-01-14 18:05:39
【问题描述】:

你好,我有一张桌子有 2 列像

group_id   product_id
2          65
2          50
2          30
2          60
2          42
5          40
5          42
6          30
6          65
6          60
7          90
7          40

我想获取同一组 id 中产品 id 的记录列表

【问题讨论】:

  • 你想要什么结果?
  • 添加到同一组 id 的产品列表
  • @mrking 你说的是按 group_id 的 product_ids 逗号分隔列表?

标签: mysql sql


【解决方案1】:

您尚未指定所需的输出。但是,如果您想要按组的逗号分隔列表,您可以从以下 StackOverflow 线程中执行类似此答案的操作:

MySQL

SELECT t.group_id,
       GROUP_CONCAT(t.product_id) AS product_id_group
FROM [YOURTABLE] t
GROUP BY t.id, t.product_id;

MySQL Results as comma separated list

SQL 服务器

SELECT group_id, product_id = 
    STUFF((SELECT ', ' + product_id
           FROM [YOURTABLE] t1
           WHERE t1.group_id = t2.group_id 
          FOR XML PATH('')), 1, 2, '')
FROM [YOURTABLE] t2
GROUP BY group_id

SQL Server : GROUP BY clause to get comma-separated values

这将返回如下结果集:

group_id    product_id
2           65, 50, 30, 60, 42
5           40, 42
6           30, 65, 60
7           90, 40

【讨论】:

  • @mrking 查看 MySQL 编辑,如果这不起作用,请提供错误消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-16
  • 2021-11-08
  • 1970-01-01
相关资源
最近更新 更多