2013-05-18 5 views
0

은 MySQL을 사용하여 PHP의 연관 배열처럼 연관 값을 갖는 결과를 얻을 수있는 방법입니다. 예를 들어MySQL 결과의 연관 값

:

에서 moviename : '피아니스트', 감독 : '로만 폴란스키'언어 : '영어', 배우 '에이드리언 브로디' '에밀리아 폭스' '프랭크 핀레이'.

즉, 일치하는 모든 액터를 단일 행으로 가져옵니다. 이 가능, 또는 내가 고수해야합니까 :

에서 moviename : '피아니스트', 감독 : '로만 폴란스키'언어 : '영어', 배우 '에이드리언 브로디'

에서 moviename ' 피아니스트 ', 감독 :'로만 폴란스키 '언어 :'영어 ', 배우'에밀리아 폭스 '

에서 moviename :'피아니스트 ', 감독 :'로만 폴란스키 '언어 :'영어 ', 배우' Frank Finlay '

+0

을 그리고 지금은 또 다른 문제로 실행 한 :이를 위해이 같은에서 moviename, 감독 및 언어하여 쿼리를 그룹화, GROUP_CONCAT를 사용할 수 있습니다. 물론 영화는 하나 이상의 언어를 가질 수 있습니다. 그러나 다른 언어를 추가하면 결과가 복제됩니다. 즉, 배우는 두 번 나열됩니다. 그리고 다른 언어 (총 3 개 언어)를 추가하면 배우가 각각 3 번 나열됩니다. 어떻게 해결할 수 있습니까? 나는 GROUP_CONCAT에 언어를 시도했지만 계획대로 진행하지 못했습니다;) 결과 행 하나에 모든 액터와 모든 언어를 표시하는 방법이 있습니까? –

답변

1

원하는 것은 연관 배열이 아니라 같은 그룹에 속한 값의 목록입니다.

SELECT moviename, director, language, 
     GROUP_CONCAT(actor) AS actors 
    FROM movies 
GROUP BY moviename, director, language 
+0

고마워요! 그것은 내가 찾고 있었던 바로 그 것이다 : D –