あぼかどブログ > Web > PHP > (SQLメモ)group_concatで複数のカラムを一つにまとめる

(SQLメモ)group_concatで複数のカラムを一つにまとめる

絶対に忘れそうなので、SQLのメモ。
複数のカラムを「,」でつないで、一つのまとめる。
group_concat、group by、distinctを使う。

(SQLメモ)group_concat

テーブル
shopにitemを結合すると結果は

普通にJOINする
こうなる。
これを商品1~商品4を「,」でつないで、shop_idのユニークとしたい。
この場合のSQLは


SELECT
 s.id AS 'shop_id',
 s.name AS 'shop_name',
 group_concat(distinct i.name separator ',') AS 'item_name'
FROM
 shop AS s
LEFT OUTER JOIN item AS i on (i.shop_id = s.id)
GROUP BY s.id


上記のようにgroup_concat・distinct・group byを使ったら

結果

のぞんだ結果になる(はず)

【前後の記事】
«
 
»
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です