Mysql-запрос для объединения неизвестного числа значений в новом поле - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть таблица с двумя полями (идентификатор работы, имя сотрудника).Я хочу объединить все имена сотрудников в одном поле.На каждой работе есть хотя бы один сотрудник, и я предпочитаю использовать запятую или любые другие разделители между сотрудниками.

Пример может быть таким:(Вход)

J#  Employee name
1   Cathrine
1   Sami
1   Jack
2   Jack
2   John
3   Afshin

(выход)

J#  Employee names
1   Cathrine, Sami, Jack
2   Jack, John
3   Afshin

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

Использовать concat группы с выражением SEPARATOR.

SELECT 
   `job_id` as `Job Id`,
   GROUP_CONCAT(`employee_name` SEPARATOR ", ") AS `Employee Names`
FROM
   `TABLE1`
GROUP BY
    `job_id`
1 голос
/ 23 февраля 2012

Вы хотите сгруппировать по идентификатору задания и использовать GROUP_CONCAT () для объединения всех сгруппированных значений для поля.

SELECT job_id AS 'J#', GROUP_CONCAT(employee_name) AS 'Employee names' FROM some_table GROUP BY job_id

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