🌼

MySQLでGROUP_CONCAT を使う

2024/01/04に公開

MySQLには「GROUP BY して、あるカラムの値をGROUP毎に連結して返す」ことができる関数があります。 GROUP_CONCATの中でdistinctやorder_byも可能で、結構使いどころがありそうです。

注意点としては、文字列型が前提なので、Intなどの場合はCASTが必要です。

SELECT tbl_article.id, GROUP_CONCAT(tbl_post.name SEPARATOR ' ')
FROM tbl_article 
INNER JOIN tbl_post ON tbl_article.id = tbl_post.article_id
GROUP BY tbl_post.article_id;

Discussion