質問: tag.tag_id ORDER BY list.list_id DESC ``` このようなSQLから対象データを取得後、 それをPHP内でループする形で リスト名1 | 紐づくタグ名、紐づくタグ名、紐づくタグ名...(タグ名は複数) リスト名2 | 紐づくタグ名、紐づくタグ名、紐づくタグ名...(タグ名は複数) リスト名3 | 紐づくタグ名、紐づくタグ名、紐づくタグ名...(タグ名は複数) ... のような一覧化をしたいのですが、上記SQLで行いますと、 リスト数 x 紐づくタグ数 の数のデータ数になりますので、増えるほどかなり肥大化する為非効率だと思うのですが、 こちらをSQL文だけでリスト数のデータのみで紐づくタグ名はまとめて取得するような書き方はありませんでしょうか...? ``` 例) listテーブル list_id | list_name 1 | リスト1 2 | リスト2 tagテーブル tag_id | tag_name 1 | タグ1 2 | タグ2 3 | タグ3 tag_mapテーブル tag_map_id | list_id | tag_id 1 | 1 | 1 2 | 2 | 2 3 | 2 | 3 ``` ``` 結果) リスト1 | タグ1 リスト2 | タグ2 リスト2 | タグ3 となるところを... リスト1 | タグ1 リスト2 | タグ2,タグ3 のような形に取得出来ないか...と思っております。 ``` よろしくお願い致します。
回答: ヒント list_id, tag_id を持ったテーブルを用意。 MySQLはGROUP_CONCAT(過去ログを検索するといっぱい見つかる)でSELECT結果を横に並べる。