mysql объединяет несколько значений в одном столбце - PullRequest
5 голосов
/ 06 января 2011

Мне нужно сделать запрос, который создает 3 столбца из 2 таблиц, которые имеют следующие отношения:

ТАБЛИЦА 1 имеет идентификатор столбца, который относится к ТАБЛИЦЕ 2 со столбцом ID2

В ТАБЛИЦЕ 1 есть столбец с именем пользователя В ТАБЛИЦЕ 2 есть столбец с именем names

Может быть 1 уникальный пользователь, но может быть много имен, связанных с этим пользователем.

Если я делаю следующее, я получаю все данные, НО пользовательский столбец повторяется для каждого имени, с которым он связан. Я хочу, чтобы использование отображалось уникальным, но столбцы имен отображаются со всеми именами, связанными с пользовательским столбцом, но через запятую, как показано ниже:

выберите пользователя, имена из TABLE1 слева, присоединитесь к TABLE2 на TABLE1.id = TABLE2.id

Это будет отображать повторение пользователей каждый раз, когда появляется имя для этого пользователя. я хочу выглядеть так:

ПОЛЬЗОВАТЕЛЬ - ИМЕНА
cyrex - pedrox, rambo, zelda
homeboy - Кармен, Карлос, Том, Сандра
Джерри - Сейнфельд, Кристина
ниндзя - солобой

и т.д ....

1 Ответ

13 голосов
/ 06 января 2011

Вам нужен оператор GROUP_CONCAT .

select user, GROUP_CONCAT(names SEPARATOR ',')
from TABLE1 left join TABLE2 on TABLE1.id = TABLE2.id
group by user
...