我有以下列的表:
酒店(身份证,姓名,地址)
房间(身份证,姓名,价格,hotel_id)
room_calendar(customer_id,room_id,date)如果特定客户预订了特定房间,我们将为其创建日期记录。
如何根据到达日期和出发日期直接查询数据库以检查酒店的可用性?
非常感谢。
答案 0 :(得分:1)
在room_calendar表上与你的搜索日期联系。
密切注意:WHERE room_calendar.date IS NULL
如果room_calendar表中没有这个房间的行,那么这一天房间就没有预订。
SELECT hotel.name
,room.name
,room.price
FROM hotel
INNER JOIN room
ON room.hotel_id = hotel.id
LEFT JOIN room_calendar
ON room_calendar.room_id = room.id
AND room_calendar.date = @yourdate
WHERE room_calendar.date IS NULL