Сенсей
Новичок
Нужна помощь ибо измучался уже.
В каталоге заведений (фирм) есть опция указать часы работы.
В базе сохраняю в таком формате:
1. Если у заведения есть перерыв на обед - в базу добавляются 2 записи с одним и тем же полем day (в примере это записи с 10 до 14 и вторая запись с 15 до 18:30)
2. Если заведение работает без перерывов (в примере с 10 до 12 в day=5)
3. Если заведение закрыто - не добавляем запись с этим днем в таблицу (в примере не добавлена запись с day=6)
По хорошему вывод дат должен быть такой:
Часы работы в дни:
0,1,2,3,4 - c 10:00 до 14:00 и с 15:00 до 18:30
5 - c 10:00 до 12:00
6 - закрыто
0 - воскресенье .... 6 - суббота.
Пытаюсь использовать GROUP_CONCAT что бы выдавал список поля day (например 0,1,2,3,4) и 2 раза time_from и time_to
Ни как не получается.
Самое близкое к чему подобрался это вот:
Но в GROUP_CONCAT появляются дубликаты.
И вместо возвращения 2 записей (для дней с 0 до 4 и для дня 5 в соответствии с примером) возвращает 3 записи где в 3 ей вообще бред.
Прошу помогите
В каталоге заведений (фирм) есть опция указать часы работы.

В базе сохраняю в таком формате:

1. Если у заведения есть перерыв на обед - в базу добавляются 2 записи с одним и тем же полем day (в примере это записи с 10 до 14 и вторая запись с 15 до 18:30)
2. Если заведение работает без перерывов (в примере с 10 до 12 в day=5)
3. Если заведение закрыто - не добавляем запись с этим днем в таблицу (в примере не добавлена запись с day=6)
По хорошему вывод дат должен быть такой:
Часы работы в дни:
0,1,2,3,4 - c 10:00 до 14:00 и с 15:00 до 18:30
5 - c 10:00 до 12:00
6 - закрыто
0 - воскресенье .... 6 - суббота.
Пытаюсь использовать GROUP_CONCAT что бы выдавал список поля day (например 0,1,2,3,4) и 2 раза time_from и time_to
Ни как не получается.
Самое близкое к чему подобрался это вот:
PHP:
SELECT GROUP_CONCAT( CAST( a.day AS CHAR ) ) AS days, DATE_FORMAT( a.time_from, '%H:%i' ) AS f_time_from, DATE_FORMAT( a.time_to, '%H:%i' ) AS f_time_to, DATE_FORMAT( b.time_from, '%H:%i' ) AS f_time_from_s, DATE_FORMAT( b.time_to, '%H:%i' ) AS f_time_to_s
FROM business_affiliate_hours AS a
LEFT JOIN business_affiliate_hours AS b ON a.day = b.day
WHERE a.affiliate_id =57
GROUP BY a.time_from, a.time_to
И вместо возвращения 2 записей (для дней с 0 до 4 и для дня 5 в соответствии с примером) возвращает 3 записи где в 3 ей вообще бред.
Прошу помогите
