簡體   English   中英

mysql查詢顯示在線酒店預訂中的剩余房間類型

[英]mysql query display remaining room type in an online hotel reservation

我正在從事這個在線預訂項目,這部分我有貨。 這是場景。 數據庫結構:

tbl_guestinfo
   guest_id
   name
   checkin
   checkout
   numAdults
   numChild

tbl_rooms
   room_id
   room_name
   guest_id
   type_id

tbl_roomtype
   type_id
   room_rate
   room_type
   noOf_Rooms

我已經可以從查詢中獲得良好的結果,其中可以掃描所有可用的房間並顯示我想要的所有信息。

SELECT *
FROM tbl_rooms, tbl_roomtype 
WHERE guest_id NOT IN
(
SELECT `guest_id` from tbl_guestinfo where
(`checkin` < ' $varCheckOut' and `checkout`>= '$varCheckOut' )
OR (`checkin`<= '$varCheckIn' and `checkout`> '$varCheckIn' )
OR (`checkin`>= '$varCheckIn' and `checkout`<='$varCheckOut')
)

我需要顯示所有可用的剩余room_type。 因此,舉例來說,如果從2012年10月1日到2012年10月5日guest1占用了5個標准房和5個豪華房,並且1個標准房被guest1占用,而guest2在同一日期占用了1個豪華房,那么該站點將仍然顯示標准房和豪華房,因為每個room_type還剩4個。

請注意,我將把room_type放在html表中,並將noOf_Rooms留在組合框中。

請幫助我們進行大量研究和閱讀,但仍然無法弄清楚。 預先感謝您的所有幫助。

干杯

擴展查詢:

 SELECT room_type, count(*)
 FROM tbl_rooms, tbl_roomtype 
 WHERE guest_id NOT IN
 (
   SELECT `guest_id` from tbl_guestinfo where
   (`checkin` < ' $varCheckOut' and `checkout`>= '$varCheckOut' )
   OR (`checkin`<= '$varCheckIn' and `checkout`> '$varCheckIn' )
   OR (`checkin`>= '$varCheckIn' and `checkout`<='$varCheckOut')
 )
 GROUP by room_type

我不喜歡您的房間表包含guest_id。 進行類似於“預訂”表的操作,該表可映射客人和房間並包含所有日期等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM