我在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日的某些日子已被保留。
感谢。
答案 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)
)
它会抓住没有任何与您的日期范围相冲突的预订的房间。