我有一个items表:itemID,itemName每一个item都可以预定一段时间;每个项目可以有多个预订;预订从不重叠。
预订保存在预订表中:itemID、startDate、endDate
我想指定天数、开始日期和结束日期,然后在提供的开始日期和结束日期之间查找任何未预订期间为该天数或更短的项目。换句话说,我正在寻找给定日期范围内的“短期可用性”项目。然后,我想返回每个 itemID 的短期可用性开始和结束日期的列表。
我将不胜感激有关如何解决此问题的任何建议,理想情况下是在单个 MySQL 查询中,但使用 PHP 循环进行长期操作是可以的。
到目前为止,我的方法是获取 bookings 表中的所有唯一 itemID,其中包含在提供的开始日期和结束日期之内或之间的预订,然后使用 PHP 和 MySQL 查询的组合解析整个范围,并添加 itemID 和将“短期期间”的开始和结束日期添加到数组中,但这不是一种优雅的方法。
谢谢