2013-05-06 212 views
1

到目前爲止我的代碼3個表和組關於電影的結果: http://sqlfiddle.com/#!2/c421c/6註冊用戶

我想告訴所有的電影在同一行

所需的輸出:

| Name| Favourite movies | 
---------------------------- 
| Alice |   Movie A Movie B | 
| Bob |   Movie A Movie C | 
| Carol |   (null) | 
| Dave |   (null) | 

我使用CodeIgniter 2有效記錄

PHP輸出

Array 
(
    [0] => stdClass Object 
     (
      [user] => Test 
      [gender] => 0 
      [GROUP_CONCAT(movies.movie SEPARATOR "-")] => Movie A-Movie B 
     ) 

我應該如何處理[user](echo $ user-> user;)應如何打印最後一個字段的輸出?

回答

1

使用group_concat

SELECT `users`.`user` AS name, 
     group_concat(`movies`.`movie`) AS favorites 

FROM (`users`) 

LEFT JOIN `users_movies` 
    ON `users`.`id` = `users_movies`.`user_id` 

LEFT JOIN `movies` 
    ON `users_movies`.`movie_id` = `movies`.`id` 

GROUP BY `users`.`user` 

SQLFiddle demo