【发布时间】:2017-01-28 18:08:20
【问题描述】:
我目前正在从事酒店预订服务,我想显示特定房间类型和酒店在特定时间段内的所有免费客房。 我发现似乎是一个有效的查询,直到我注意到:如果一个房间根本没有任何预订,它就不起作用。
SELECT DISTINCT r.id,
r.num,
r.NAME,
h.NAME,
h.city,
h.country
FROM room r
JOIN hotel h
ON r.hotel_id = h.id
JOIN room_type rt
ON r.room_type_id = rt.id
WHERE r.id NOT IN (SELECT room_id
FROM reservation
WHERE ( '$from' BETWEEN start_date AND end_date )
OR ( start_date BETWEEN '$from' AND '$to' )
OR '$from' = start_date)
AND $roomtype = rt.id
AND $hotel = h.id
此查询将在 PHP 脚本中使用,其中“$from”是用户选择的预订开始日期,$to 是预订结束等。
即使房间没有预订,有没有办法让这个查询工作? 非常感谢任何帮助!
【问题讨论】: