我希望开发一个会议室预订系统。
到目前为止,我已将数据库设计如下。
间:
时期:
保留:
进行预订时,系统会记下用户预留的start_period_id
,end_period_id
。
当用户想要进行新的预订时,他/她将指定他/她想要的日期和开始结束的时间段,系统应该给他/她一个列表在指定时间段内没有预约的房间时间。
我提出了一些SQL,但它对某些circumstance没有用,所以我猜,它仍然是错误的。
请帮助SQL查询房间的可用性。
答案 0 :(得分:1)
检查一下:
http://sqlfiddle.com/#!2/d07965/20
使用此查询。你唯一缺少的是平等条件。 :
select *
from rooms A
left join reservations B
on A.id = B.room_id
and B.reservation_date = '2014-01-11'
and B.start_period_id <= 11 and B.end_period_id >= 11
where B.room_id is null;
此致 曼西