【发布时间】:2011-04-10 22:46:43
【问题描述】:
(如果这看起来很熟悉:我问了一个different question similar to this one,但我刚刚收到一个说明,网站设计已经改变,现在业主确实想要一种方法来搜索任何房间在一系列日期之间可用。所以这是一个新问题...)
我正在开发一个酒店预订系统,我需要找出在一系列日期之间有哪些客房可供预订。现有的“可用性”表架构很简单,列是:
room_id
date_occupied - a single day that is occupied (like '2011-01-01')
因此,例如,如果 6 号房间在 1 月 1 日至 1 月 5 日期间被占用,则可用性表中会添加 5 行,该房间每天占用一行。
我试图找出查询以查找在开始日期和结束日期之间有哪些房间可用(同时还过滤了一些其他参数,如非吸烟、床的大小等)......在伪 SQL 中有点像:
SELECT (a list of room IDs) FROM rooms, availability WHERE rooms.nonsmoking = 1 AND rooms.singlebed = 1 AND nothing between start_date and end_date is in availability.date_occupied
与我的其他问题一样,我在尝试确定确切的查询以及如何以最有效的方式加入表时有点卡住了。感谢您的帮助。
【问题讨论】: