我有一个名为&#34的表; checkInGuestUsers"其中有像' checkInTime(DATETIME),checkOutTime(DATETIME),rooms(varchar)
等栏目特定用户在特定时间内预订了一些房间,
UserId checkInTime checkOutTime rooms
25 2014-12-04 00:00:00 2014-12-05 23:59:59 101,102
现在,另一位用户或同一用户希望在
中预订房间"2014-12-03 00:00:00" to "2014-12-04 23:59:59" OR
"2014-12-04 00:00:00" to "2014-12-04 23:59:59"
然后系统应该返回除101,102之外的所有房间清单,因为这些房间已经预订了 " 2014-12-04 00:00:00"到" 2014-12-04 23:59:59"
我想要一个SQL查询,如果我从上面的一个中选择时间,那么它将返回在该时间段内预订的房间。
我尝试过使用SQL之间的条件大于或小于条件但未能得到确切的结果。
答案 0 :(得分:0)
从checkInTime为null的房间中选择room_id或checkOutTime< = bookFrom并且checkInTime为null或bookTo< = checkInTime
这是家庭作业吗?
答案 1 :(得分:0)
select r.*
from rooms r
left join checkInGuestUsers g
on g.rooms like r.<room_no> -- actually not a good condition, should be improved
and g.checkInTime <= {:book_to} and g.checkOutTime >= {:book_from}
where g.rooms is null