2017-07-06 86 views
-5

我有表有以下幾列:SQL查詢來搜索酒店預訂

酒店(ID,姓名,地址)

房間(ID,名稱,價格,HOTEL_ID)

room_calendar (customer_id,room_id,date),我們將爲特定客房創建日期記錄,如果它由特定客戶預訂的話。

如何根據到達日期和出發日期直接查詢數據庫以檢查酒店的可用性?

非常感謝。

+1

歡迎來到Stack Overflow。請花點時間參加[Tour](https://stackoverflow.com/tour)並閱讀[how-to-ask](https://stackoverflow.com/questions/how-to-ask)以獲取爲您的問題提供更好的答案 –

+0

您到目前爲止已嘗試解決您的問題?請告訴我們你的方法。提及:Stackoverflow不是一個免費的代碼寫入服務。 –

+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 
+0

非常感謝。是否有可能創建一個進一步查詢的視圖?例如,每個記錄表示在特定日期酒店已滿(所有房間都已預訂)。 –