2013-12-16 58 views
0

每個人。我的網上酒店預訂的任務有問題,我的問題很難檢查可用的房間。所以我有很多像這樣的表格:使用MySql檢查可用空間

tbRoom(RoomID,RoomName,...) 
tbReservation(ResID,ResDate,....) 
tbReservationDetail(ResID,RoomID,ArrvialDate,DepartureDate,....) 

我想要在兩個日期之間得到房間。

那麼,我該怎麼做?或者我需要創建更多的表格嗎?

請幫助我,感謝幫助....

回答

1

您可以選擇保留客房和反轉:

SELECT * FROM tbRoom WHERE RoomID NOT IN (SELECT RoomID FROM tbReservationDetail WHERE ArrvialDate < yourDate AND DepartureDate > yourDate) 
+0

對不起,您的查詢工作不總是調用所有RoomID甚至,我把日期日期是ArrivalDate和DepartureDate之間....請幫幫忙,我等着你的幫助.... – user3108220

0

你可以使用你上面指定的3個表實現您的結果。但只有你必須改變的是你還必須使用表中的RoomID表。

rbRoom - >商店不同的房間
tbReservation - >當一個房間被保留此表將舉行RoomID和預約ID tbReservationDetail - >存儲與arrivalDate,DepartureDate等

然後按照其他細節下面的查詢

SELECT * FROM tbRoom WHERE RoomID NOT IN (SELECT RoomID FROM tbReservation  
    tr,tbReservationDetail td WHERE td.ArrvialDate < yourDate AND 
    td.DepartureDate > yourDate and tr.RoomID=td.RoomID) 
+0

Th爲你提供幫助 – user3108220