0

所以我有两张桌子。

表 1 名为“约会”,包含以下字段:ID(int)、TimeboxID(int)、Date(date)

表 2 名为“timebox”,包含以下字段:ID(int)、Weekday(int)、StartTime(varchar)

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

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

附言。字段StartTime仅用于显示,这里没有意义。

4

1 回答 1

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

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

于 2012-06-30T18:38:22.127 回答