在选择房间可用性时使用MySQL查询

问题描述 投票:1回答:1

在房间可用性方面,我在酒店预订中有这个数据库结构

下面是我的room

room_num    roomtype     
101         Single    
102         Single    
103         Single    
111         Deluxe    
112         Deluxe   
113         Deluxe    
114         Deluxe    
115         Deluxe    
116         Deluxe    
121         Superior  
122         Superior  

下表是room_booked,这是记录预订的房间号码

qazxsw poi是入住日期,qazxsw poi是延迟退房

dor

在这种情况下,所有豪华房间都从dco预订到room_num dor dco 111 2014-06-01 2014-06-06 112 2014-06-01 2014-06-06 113 2014-06-01 2014-06-06 114 2014-06-01 2014-06-06 115 2014-06-01 2014-06-06 116 2014-06-01 2014-06-06 112 2014-05-18 2014-05-21 113 2014-08-01 2014-08-04 。然后我通过下面的MySQL代码选择2014-06-01至2014-06-06提供的豪华房

2014-06-01

但它显示豪华房号。在上面的选定日期范围之前和之后预订的112和113而不是0或完全预订。有没有解决方案来修复此代码?

php mysql sql
1个回答
3
投票

我想你必须检查两个日期办理登机手续并退房:

2014-06-06

重新编辑答案并创建了SELECT room.room_num FROM room LEFT JOIN room_booked ON room_booked.room_num = room.room_num WHERE ( ( dor IS NULL AND dco IS NULL ) OR ( -- wished booking date is before DOR '2014-06-06' < dor -- OR wished booking date is after DCO OR '2014-06-01' >= dco ) ) -- room type AND roomtype = 'Deluxe' 进行测试

© www.soinside.com 2019 - 2024. All rights reserved.