我有一个存储房间预订的表,架构是:
ID | ROOM_ID | CHECK_IN_DATE | CHECK_OUT_DATE | USER_ID
我需要对在一组日期范围内可用/不可用的房间运行搜索查询。
另请记住,还有另一个表格,其中包含预订房间的日期及其格式:
ROOM_ID | DATE
所以我需要运行一个查询来查找设定范围内的可用房间,我将如何制定查询? 我在这里使用 MySQL。
---编辑---
还有一个模式的 Rooms 表:
ID | ROOM DETAILS etc
unavailability/prebooked dates table 基本上保存零星的单例日期,unavailability table 中的每个日期都是指由于某些原因无法预订房间的日期,例如:维修等
最佳答案
SELECT
ROOM_ID
FROM
Rooms r
LEFT JOIN Bookings b ON (
r.ROOM_ID = b.ROOM_ID
AND b.CHECK_IN_DATE > '$MAX_DATE'
AND b.CHECK_OUT_DATE < '$MIN_DATE'
)
由于没有日期范围,我不确定预订房间的因素如何。预订的房间是否也会进入预订?
关于php - 需要查看日期范围是否与sql中的另一个日期范围重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5092028/