根据MySQL中的两个表确定空闲时隙

时间:2012-06-30 18:26:11

标签: mysql date calendar timeslots

所以我有两张桌子。

表1被命名为“约会”,其中包含以下字段:ID(int),TimeboxID(int),Date(日期)

表2被命名为'timebox',其中包含以下字段:ID(int),Weekday(int),StartTime(varchar)

表1保留所有约会(Date + TimeboxID组合),而表2定义了一周中每一天可用的时间段。

以下是我的问题:如何在1个查询中找出哪些日期有可用的免费时段(以及有多少个)?

PS。仅显示字段StartTime,此处没有意义。

1 个答案:

答案 0 :(得分: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

不知道你是否用自动化的东西替换表工作日