Объединить столбцы и данные SQL с одинаковым prod_id - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть таблица, которая выглядит так:

| 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 голосов
/ 08 ноября 2018

Вы можете попробовать использовать агрегатную функцию MIN с GROUP_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        |

Просмотр на БД Fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...