合并具有相同prod\u id的sql列和数据

izj3ouym  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(228)

我有一张这样的table:

| id   | product | prod_id |
| 1001 | Item 1  | P1001   |
| 1002 | Item 2  | P1001   |
| 1003 | Item 3  | P1003   |

我想要的输出是:

| id   | prod_id        |
| 1001 | Item 1, Item 2 |
| 1003 | Item 3         |

如您所见,第1项和第2项具有相同的产品标识。
这就是我所尝试的: select id, prod_id from table_name where prod_id = product; 基本上,我尝试的是合并所有具有相同prod\u id的产品,然后将它们显示为id&prod\u id。
我是mysql的新手,希望能得到一些关于如何做到这一点的反馈。我不确定我试图解决这个问题的逻辑是否正确。

dtcbnfnu

dtcbnfnu1#

您可以尝试使用聚合函数 MINGROUP_CONCAT 架构(mysql v5.7)

CREATE TABLE T(
  id int,
  product varchar(50),
  prod_id varchar(50)
);

INSERT INTO T VALUES (1001,'Item 1','P1001');
INSERT INTO T VALUES (1002,'Item 2','P1001');
INSERT INTO T VALUES (1003,'Item 3','P1003');

查询#1

SELECT MIN(id) id,GROUP_CONCAT(product) prod_id        
FROM T
GROUP BY prod_id;

| id   | prod_id       |
| ---- | ------------- |
| 1001 | Item 1,Item 2 |
| 1003 | Item 3        |

db fiddle视图

相关问题