[英]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.