MySQL junte -se a vários valores em uma coluna
-
25-09-2019 - |
Pergunta
Preciso fazer uma consulta que cria três colunas que vêm de 2 tabelas que têm as seguintes relações:
A Tabela 1 possui ID da coluna que se refere à Tabela 2 com a coluna ID2
Na Tabela 1, há uma coluna chamada Usuário na Tabela 2, há uma coluna chamada nomes
Pode haver 1 usuário exclusivo, mas pode haver muitos nomes associados a esse usuário.
Se eu fizer o seguinte, recebo todos os dados, mas a coluna do usuário se repete para cada nome que associou. O que eu quero é ser usado para parecer único, mas as colunas de nomes aparecem com todos os nomes associados à coluna do usuário, mas separados por vírgulas, como o seguinte:
Selecione Usuário, Nomes da Tabela1 Tabela de junção esquerda 2 na Tabela1.id = Tabela2.id
Isso mostrará os usuários repetidos sempre que um nome aparecer para esse usuário. O que eu quero é parecer assim:
Usuário - Nomes
Cyrex - Pedrox, Rambo, Zelda
Homeboy - Carmen, Carlos, Tom, Sandra
Jerry - Seinfeld, Christine
Ninja - Soloboy
etc ....
Solução
O que você está procurando é o Group_concat operador.
select user, GROUP_CONCAT(names SEPARATOR ',')
from TABLE1 left join TABLE2 on TABLE1.id = TABLE2.id
group by user