У меня есть таблица пользователей, в которой я храню информацию о пользователях вместе с их временем начала и окончания дня
id day_start day_end
1 08:00:00 16:00:00
2 09:00:00 18:00:00
, а есть еще одна таблица, в которой хранятся события календаря для пользователей
id user_id start end
1 1 2020-01-12 12:00:00 2020-01-12 13:30:00
2 1 2020-01-12 13:30:00 2020-01-12 14:30:00
3 1 2020-01-12 09:00:00 2020-01-12 10:30:00
Поэтому я пытаюсь отфильтровать этих людей по их свободному времени. т.е. я хочу предоставить время начала, время окончания и массив дней недели и найти пользователей, которые доступны на основе этих критериев. Например, я хочу сказать, что я ищу людей, которые доступны по субботам или понедельникам в любое время с 10:00:00 до 14:00:00 и получают список пользователей.
Обратите внимание, что Пользователь может быть недоступен в течение всего запрашиваемого времени, но только в течение части времени. Например, пользователь, у которого есть свободное время только в субботу с 11:00:00 до 11:30:00, также должен быть указан.
Я ищу запрос MySQL для реализации этой функции.
Если бы запрос мог дать время начала и окончания всех свободных временных интервалов, было бы здорово. как то так
user_id start end
1 2020-01-12 08:00:00 2020-01-12 09:00:00
1 2020-01-12 10:30:00 2020-01-12 12:00:00
1 2020-01-12 14:30:00 2020-01-12 18:00:00
2 ...
...