私はテーブルを持っています(mysql 5.5 INNODB):サンプルの小さなデータ+質問に関連しない列をカット-実際のデータは巨大です(ミーティングテーブルに10,000,000行以上)
入力:
day:
day_id(primary key)|sunday|monday|tuesday|wensday|thursday|friday|saturday
---------------------------------------------------------------------------
60 |1 |1 |1 |1 |1 |1 |1
74 |0 |1 |0 |0 |0 |0 |0
98 |0 |0 |0 |0 |0 |0 |0
..etc......................................................................
meeting:
day_id(foreign key)|time |type
----------------------------------
60 |20:09:00|1
98 |07:00:00|1
74 |22:01:00|4
98 |10:00:00|1
60 |23:09:00|2
98 |06:00:00|2
74 |21:04:00|6
98 |08:00:00|6
.....etc.....................
出力:
sunday_times |monday_times |....etc
-------------------------------------------------------------------------------------------------
20:09:00,etc... | 20:09:00,etc.. |
................etc..............................................................................
私はそのようなことを考えています(しかし、私はSQLが初めてなので、それが良いのか合法なのかわかりません)
SELECT
GROUP_CONCAT(time where day.sunday=1 ORDER BY time) as sunday_times,
GROUP_CONCAT(time where day.monday=1 ORDER BY time) as monday_times,
etc..
FROM day
JOIN meeting ON meeting.day_id=day.day_id
GROUP BY type