Mysql 合并具有相同产品id的SQL列和数据

Mysql 合并具有相同产品id的SQL列和数据,mysql,sql,Mysql,Sql,我有一张这样的桌子: | 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具有相同的产品id 这就是我所尝试的: 从pro

我有一张这样的桌子:

| 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具有相同的产品id

这就是我所尝试的:

从prod\u id=product的表\u name中选择id,prod\u id

基本上,我尝试的是合并所有具有相同prod_id的产品,然后将它们显示为id&prod_id


我是mySQL的新手,希望得到一些关于我如何做到这一点的反馈。我不确定我在尝试解决问题时的逻辑是否正确。

您可以尝试将聚合函数MIN与GROUP\u CONCAT一起使用

模式MySQL v5.7

问题1


如果您想将id合并到组中,您可以将组CONCAT扩展到组_concatproduct,,id,D-Shih,这是完美的答案!谢谢你教我关于小组讨论的知识。我要去研究一下。是的,我尝试了你发布的内容,它完全按照我需要的方式工作。如果允许的话,我会在2分钟内把你的答案标记为正确。谢谢你,D-Shih。@gosi123没问题很高兴能帮助你:
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');
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        |