获得两个日期之间免费的房间MySQL

时间:2014-01-04 18:00:34

标签: php mysql

我在MySQL中有两个表。首先是一个房间。 第二是预订。 在表预订中,我有Room_Id和Reservation_DateFrom以及Reservation_DateTo 我如何进行一个带有两个随机日期的查询(例如2012年12月12日和2012年12月21日),看看特定房间是否在12-12-12-12-12-12-2012期间全部免费如果我有 预订房间的DateFrom和DateTo。我想列出这些天可供出租的所有房间。例如,如果房间1在15-12-2012至20-12-2012之间有预订 它不会归还它,因为从2012年12月12日到2012年12月21日的某些日子已被保留。

感谢。

1 个答案:

答案 0 :(得分:1)

SELECT Ro.*
 FROM Room Ro 
 WHERE NOT EXISTS (SELECT 1 FROM Reservation Re 
                   WHERE Ro.Id = Re.Room_Id
                   AND ([yourStartDate] BETWEEN Re.Reservation_DateFrom AND Re.Reservation_DateTo
                        OR [yourEndDate] BETWEEN Re.Reservation_DateFrom AND Re.Reservation_DateTo)
                   )

它会抓住没有任何与您的日期范围相冲突的预订的房间。