- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:group_concatを複数列に設定する)
group_concatを複数列に設定する時の問題と解決方法
このQ&Aのポイント
- group_concatを複数列に設定すると、グルーピングした結果が1行に繰り返し表示されてしまう問題が発生します。
- 解決方法としては、抽出結果のグループの繰り返しを削除するためにGROUP BY句を使用することが効果的です。
- 具体的には、GROUP BY句をカラムCOL1に指定することで、COL1ごとにグループ化された結果を取得することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
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はオーバーヘッドが大きすぎるのでやめた方がいい
- 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
お礼
ご回答頂き、ありがとうございます。