1
我目前正在致力於酒店預訂服務,並且我想在特定時間段內顯示特定房型和酒店的所有免費房間。 我發現什麼似乎是一個工作查詢,直到我注意到:如果一個房間沒有任何保留,它不起作用。SQL在特定時間段內查找免費房間
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腳本中使用,其中「從$」是用戶選擇的預訂日期開始至$的就是預約的結束等
有沒有一種方法,使這項查詢即使房間沒有保留也可以工作嗎? 任何幫助,非常感謝!
非常感謝您的回覆。我應用了你的邏輯,現在它終於正常工作了!在子查詢之前檢查rt.id和r.id也很有意義。謝謝 :) – heap1