合并具有相同prod_id的SQL列和数据

时间:2018-11-08 02:15:39

标签: 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具有相同的prod_id。

这是我尝试过的:

select id, prod_id from table_name where prod_id = product;

基本上,我尝试将所有具有相同prod_id的产品合并,然后将其显示为id和prod_id。

我是mySQL的新手,希望获得一些有关如何执行此操作的反馈。我不确定尝试解决此问题的逻辑是否正确。

1 个答案:

答案 0 :(得分:3)

您可以尝试将聚合函数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        |

View on DB Fiddle

相关问题