• 締切済み

JOIN ON しているサブ情報が複数あるとダブる

質問失礼いたします。 下記のSQL文を使って、「table1」をメインとして「table2」、「table3」を表示しています。 ★現在の状態 【SQL文】 SELECT table1.*, table2.id as t2id, table2.title as t2title, table2.title as t2url, table3.id as t3id, table3.title as t3title, table3.title as t3url, from (table1 left JOIN table2 ON table1.id = table2.id) LEFT join table3 on table1.id = table3.id 【table1】 id  name ... 01 東京 ... 02 栃木 ... 03 埼玉 ... 【table2】 id title          url 01 レストラン東京   http://~ 01 ファミレス東京   http://~ 02 ファストフード栃木   http://~ 03 喫茶さいたま   http://~ 【table3】 02 麺所   http://~ 03 ら~麺   http://~ 【表示】 +───+───────────+───────+ │地域│洋食             │ラーメン店   │ +───+───────────+───────+ │東京│レストラン東京http://~  │         │ +───+───────────+───────+ │東京│ファミレス東京http://~  │         │ +───+───────────+───────+ │栃木│ファストフード栃木http://~│麺所http://~ │ +───+───────────+───────+ │埼玉│喫茶さいたまhttp://~   │ら~麺http://~│ +───+───────────+───────+   ※「http://~」には全てリンクを貼っています サブの「table2」(または、「table3」)に2つの情報があると、 表示した際にレコードが2行になります。 その為、下記の通り情報が複数ある場合は1行にまとめたいと思っています。 ★希望する状態 【表示】 +───+───────────+───────+ │地域│洋食             │ラーメン店   │ +───+───────────+───────+ │東京│レストラン東京http://~  │         │ │   │ファミレス東京http://~  │         │ +───+───────────+───────+ │栃木│ファストフード栃木http://~│麺所http://~ │ +───+───────────+───────+ │埼玉│喫茶さいたまhttp://~   │ら~麺http://~│ +───+───────────+───────+   なにか方法などありましたら、教えて下さい。 宜しくお願い致します。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

MySQLの戻り値としては当初の表示データのモノがのぞましく 受け取ったプログラム側でテーブルに表示しなおす方がよいと思います どうしてもデータをMySQL側で処理したい場合は group_concatで処理することになると思います

関連するQ&A