Определение свободных таймслотов на основе двух таблиц в MySQL

Итак, у меня есть две таблицы.

Таблица 1 называется «встреча» со следующими полями: ID (целое), TimeboxID (целое), Date (дата)

Таблица 2 называется timebox со следующими полями: ID (int), Weekday (int), StartTime (varchar)

Таблица 1 содержит все встречи (комбо Date + TimeboxID), а таблица 2 определяет, какие временные интервалы доступны для каждого дня недели.

Вот мой вопрос: как я могу узнать в 1 запросе, на какие даты есть свободные временные интервалы (и сколько)?

пс. Поле StartTime нужно только для отображения, здесь оно не имеет значения.


person x74x61    schedule 30.06.2012    source источник


Ответы (1)


Я должен использовать что-то вроде:

SELECT workdays.date, COUNT(DISTINCT timebox.ID) AS FreeTimeBoxes
FROM workdays
LEFT JOIN timebox ON (WEEKDAY(workdays.date) = timebox.Weekday)
LEFT JOIN appointment ON (workdays.date = appointment.date AND timebox.ID = appointment.TimeboxID)
WHERE appointment.ID IS NULL
GROUP BY workdays.date

Не знаю, замените ли вы табличные рабочие дни чем-то автоматизированным

person Puggan Se    schedule 30.06.2012
comment
Спасибо. Я объединил это с этим решением для заполнения таблицы рабочих дней - person x74x61; 01.07.2012