2011-01-05 27 views
5

muszę dokonać kwerendy, która tworzy 3 kolumny, które pochodzą z 2 tabel, które mają następujące relacje:mysql przyłączyć wielu wartości w jednej kolumnie

TABELA 1 posiada identyfikator kolumna, która odnosi się do tabeli 2 w kolumnie ID2

w tabeli 1 znajduje się kolumna o nazwie użytkownik w tabeli 2 znajduje się kolumna o nazwie nazwy

nie może być 1 unikalny użytkownik, ale nie może być wiele nazw związanych z tym użytkownikiem.

Jeśli wykonam następujące czynności, otrzymam wszystkie dane, ALE kolumna użytkownika powtarza się dla każdej skojarzonej nazwy. To, czego chcę, to użycie wydaje się niepowtarzalne, ale kolumny nazw są wyświetlane ze wszystkimi nazwami powiązanymi z kolumną użytkownika, ale są oddzielone przecinkami, jak poniżej:

wybierz użytkownika, nazwy z TABELA 1 lewe dołączenie TABELA 2 na TABELA1.id = TABLE2.id

Spowoduje to wyświetlenie użytkowników powtarzających się za każdym razem, gdy pojawi się nazwisko tego użytkownika. co ja chcę to wyglądać tak:

USER - NAZWY
Cyrex - pedrox, rambo, Zelda
Homeboy - Carmen, Carlos, Tom, sandra
Jerry - Seinfeld, Christine
ninja - soloboy

itp.

Odpowiedz

11

To, czego szukasz, to operator GROUP_CONCAT.

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

To jest bardzo dobra odpowiedź. wiele dzięki eric. –

Powiązane problemy