2011-01-05 4 views
5

내가해야 하나 열에서 여러 값으로 조인 다음과 같은 관계가 두 테이블에서 올 3 열 생성하는 쿼리MySQL은

표 1은 열 ID2

과 표 2에 관한 열 ID를 가지고 표 1에서

는 이름

라는 칼럼 (1) 고유 한 사용자가있을 수 있지만 해당 사용자에 관련된 많은 이름이있을 수가 표 2에서 사용자라는 컬럼이있다.

만약 내가 다음과 같이하면 모든 데이터를 얻을 수 있지만 사용자 컬럼은 그것이 연관된 각각의 이름에 대해 반복됩니다. 내가 원하는 것은 고유 한 것으로 보이지만 이름 열은 사용자 열에 연결된 모든 이름으로 표시되지만 다음과 같이 쉼표로 구분되어 표시됩니다.

사용자 선택, TABLE1의 이름 선택 join TABLE2 on TABLE1.id = TABLE2.id

이렇게하면 해당 사용자의 이름이 나타날 때마다 반복적으로 표시됩니다. 내가 원하는 다음과 같이 표시하는 것입니다

사용자 - 명칭
cyrex - pedrox, 람보, 젤다
빚 - 카르멘, 카를로스, 톰, 산드라
제리 - 펠트, 크리스틴
닌자 - soloboy

등 ....

답변

11

당신이 찾고있는 것은 GROUP_CONCAT 연산자입니다.

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

이것은 매우 좋은 대답입니다. 많은 감사합니다 eric. –