sql >> データベース >  >> RDS >> Mysql

各行の別のテーブルからの配列として行を結合する

    mysqlのGROUP_CONCAT<が必要だと思います/ a>

    次のようなことをします:-

    SELECT 
        movies.*, 
        group_concat(links.link ', ') as links
    FROM movies 
    LEFT JOIN links 
    ON links.movieid = movies.movieid 
    GROUP BY movies.movieid
    

    すべての映画のリンクのコンマ区切りのリストが表示されます。次のように抽出できます:-

    foreach ($movies->result() as $row) {
      $linksArray = explode(",",$row->links);
    }
    

    更新 これが、複数のリンクを持つ単一の映画に対して複数の結果行がなくても結果を取得できる唯一の方法だと思います。

    結果で取得できる文字の最大長に注意してください。デフォルトでは1024文字です。これを読んでください MySQL group_concat_max_length およびグループ連結の最大長 制限を無効にする方法を知るため。

    また、Dan Grossmanが指摘したように、リンクにカンマが含まれている可能性があると思われる場合は、別の、または一般的でない区切り文字を使用してください。



    1. javaからmysqlにデータベースを作成する

    2. 1064、SQL構文にエラーがあります; ... Python MySQL

    3. 日時MYSQLフォーマットによるフィルタリング

    4. リモートmySQL接続スローは、XAMPPからの古い安全でない認証エラーを使用してMySQL4.1以降に接続できません