正如你可能从标题中注意到的那样,我的问题很难表达,但有问题:
我有MySQL表和一些数据:
在注册表格中,我必须指定预约开始和结束时间。如何检查是否已经在指定时间内注册了预约。例如,我不能提出新的预订,从13:20开始,到15:00等结束。
答案 0 :(得分:1)
如果您要创建的新预订的开头或结尾位于当前范围内,则应阻止预订。使用:reservationStart
和:reservationEnd
作为这些日期,您可以查询:
SELECT *
FROM reservations
WHERE :reservationStart BETWEEN reservation_from AND reservation_to OR
:reservationEnd BETWEEN reservation_from AND reservation_to OR
答案 1 :(得分:0)
使用反半连接,以下查询返回房间,可在预定的入住和退房范围内预订。它在Rails中。
关系
预订属于房间
房间有很多预订
查询
check_in_at ='2016-12-28'
check_out_at ='2016-12-29'
Room.where.not(“EXISTS(选择预订。*来自预订,其中rooms.id = bookings.room_id和bookings.check_in_at BETWEEN?AND?AND bookings.check_out_at BETWEEN?AND?)”,check_in_at,check_out_at,check_in_at ,check_out_at)