这是我的第一个问题,所以如果我做错了,请原谅我。我一直在尝试为上述问题想出一个查询,但我似乎无处可去。
SELECT SUM(slots) AS totals,date
FROM
(
SELECT start, end, date, slots
FROM 1000_appointments
WHERE date > NOW() AND HOUR(end) <= 12 AND employeeID='1000001'
) q
GROUP BY date HAVING totals < 6
这让我知道插槽总数小于 6 的日子,这很好,但我还需要该日期的所有行,如果可能的话,还需要表中没有条目的日期。我可以在 php 中进行排序和列出,但我认为在 mysql 中可能有更优雅的方法。
我希望这能很好地描述问题。这背后的原因是我需要找到"插槽"仍然可用的日期,即未预订的日期。
谢谢你,提前你的帮助。
包装将为您获取所有行:
SELECT start, end, a.date, slots, totals
FROM 1000_appointments a
JOIN
(SELECT SUM(slots) AS totals,date
FROM 1000_appointments
WHERE date > NOW() AND HOUR(end) <= 12 AND employeeID='1000001'
GROUP BY date HAVING totals < 6
) t
where a.date = t.date
获取不在表中的日期并不容易。它可能需要使用游标。我建议在你的php代码中这样做。