重複する列データをグループ化する方法を探しています。
次のようなデータを含むテーブルがあります。
-------------------------------------------
ID | locationId | day | open | close
-------------------------------------------
1 | 1213 | Wed | 10:00 am | 4:30 pm
-------------------------------------------
2 | 1213 | Thr | 10:00 am | 4:30 pm
-------------------------------------------
3 | 1213 | Fri | 10:00 am | 4:30 pm
-------------------------------------------
4 | 1213 | Sat | 10:00 am | 5:30 pm
-------------------------------------------
group_concat
locationId 1213 の情報を返すために使用しています
Wed: 10:00 am-04:30 pm,Thu: 10:00 am-04:30 pm,Fri: 10:00 am-04:30 pm,Sat: 10:00 am-05:30 pm
group_concat または別の関数/クエリを使用して、重複する開始時間と終了時間をグループ化し、次のようなデータを返す方法はありますか?
Wed,Thr,Fri: 10:00 am-04:30 pm,Sat: 10:00 am-05:30 pm
あるいは
Wed-Fri: 10:00 am-04:30 pm,Sat: 10:00 am-05:30 pm
以下は、私が使用しているSQLコードです。
SELECT appdata.nameShort,
group_concat(distinct concat(appdatahours.`day`,": ", appdatahours.open, "-",
appdatahours.close)) as hours
FROM appdata
LEFT JOIN appdatalocations on appdatalocations.listingId = appdata.id
LEFT JOIN appdatahours on appdatahours.locationId = appdatalocations.id
GROUP BY appdata.id