記事を書くきっかけ
会社の仕事で調べて便利だったので(知らなかった)
あとアウトプットが大事って聞いた
group_concat
使い方
今回の仕事で使ったデータをマスクして使用します
genba_hatureiテーブル
id | shain_no | name | genba | date_from | date_to |
---|---|---|---|---|---|
1 | 10001 | Aさん | ビル建築 | 2019-04-01 | 2020-03-31 |
2 | 10002 | Bさん | 家屋建築 | 2020-02-01 | 2020-11-31 |
3 | 10003 | Cさん | 橋建設 | 2020-04-01 | null |
4 | 10001 | Aさん | 家屋解体 | 2020-04-01 | 2020-04-30 |
5 | 10002 | Bさん | アパート建築 | 2020-12-01 | null |
6 | 10001 | Aさん | 整地 | 2020-05-01 | null |
欲しいデータの返却値は以下
shain_no | name | genba |
---|---|---|
10001 | Aさん | 2019-04-01 ~ 2020-03-31 : ビル建築 2020-04-01 ~ 2020-04-30 : 家屋解体 2020-05-01 ~ : 整地 |
10002 | Bさん | 2020-02-01 ~ 2020-11-31 : 家屋建築 2020-12-01 ~ : アパート建築 |
10003 | Cさん | 2020-04-01 ~ : 橋建設 |
書いたSQLが以下
SELECT
shain_no
, name
, group_concat(
date_from
, " ~ "
, date_to
, " : "
, genba separator "\r\n"
) as genba
FROM
genba_haturei
GROUP BY
shain_no
記事を書いてみて
最初は現場名だけまとめられれば御の字くらいに思ってましたけど、カンマ区切りで追加できるのが便利で一発でかけてしまった。
今後も便利だなと感じたら記事にしてみようかと思います。備忘録も兼ねて。
参考サイト
https://techblog.recochoku.jp/5346
https://dev.mysql.com/doc/refman/5.6/ja/group-by-functions.html#function_group-concat