• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:group_concatを複数列に設定する)

group_concatを複数列に設定する時の問題と解決方法

このQ&Aのポイント
  • group_concatを複数列に設定すると、グルーピングした結果が1行に繰り返し表示されてしまう問題が発生します。
  • 解決方法としては、抽出結果のグループの繰り返しを削除するためにGROUP BY句を使用することが効果的です。
  • 具体的には、GROUP BY句をカラムCOL1に指定することで、COL1ごとにグループ化された結果を取得することができます。

質問者が選んだベストアンサー

  • ベストアンサー
noname#157154
noname#157154
回答No.2

GROUP_CONCAT(DISTINCT s1.value SEPARETER '/')で実現できます。 http://dev.mysql.com/doc/refman/5.1/ja/group-by-functions.html

その他の回答 (2)

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

もとの質問内容がたぶんSQLの特性を理解できないまま left joinの多重結合しているので、その流れに引っ張られたのだろうけど #2はオーバーヘッドが大きすぎるのでやめた方がいい

NoMusicNoLife49
質問者

お礼

ご回答頂き、ありがとうございます。

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

それぞれのVALUEを連結してからJOINする SELECT M.COL1,GS1,GS2 FROM MAIN_TABLE AS M LEFT JOIN ( SELECT COL1,GROUP_CONCAT(VALUE separator '/') AS GS1 FROM SUB_TABLE1 GROUP BY COL1 ) AS S1 ON M.COL1=S1.COL1 LEFT JOIN ( SELECT COL1,GROUP_CONCAT(VALUE separator '/') AS GS2 FROM SUB_TABLE2 GROUP BY COL1 ) AS S2 ON M.COL1=S2.COL1

関連するQ&A