2017年3月7日火曜日

MySQLで縦列を横列にカンマ区切りにしたい。

MySQLで縦列を横列にカンマ区切りにしたいと思い色々検索してみる。 実際にはカラムにカンマ区切りで入れたいってのが要望です。 色々調べてみるが力技がほとんど。有ってもpivotが引っかかる。 どうも自分がしたい感じではない。 タグ表示に近い。 メインデータ
mainidデータ1データ2
1AB
タグデータ
tagidmainidname
11C#
21MySQL
31PHP
とDBに登録されているとして。こう表示させたい
idデータ1データ2タグ
1ABC#,MySQL,PHP
色々調べた結果MySQLに便利な関数がありました。
GROUP_CONCATです。常識?今回の件で初めてしりましたよ。 以下、こんな感じで書き求めてる結果を出せました。
SELECT * 
FROM main 
  LEFT JOIN (SELECT 
      mainid,
      GROUP_CONCAT(name separator ',') AS タグ
      FROM tag
      GROUP BY mainid) tagd ON tagd.mainid = main.mainid

0 件のコメント:

コメントを投稿