如果您想要的只是在所需日期的整个范围内可用的房间列表,那么类似以下的方法可能会起作用:
Select Room.IdFrom RoomWhere Room.Id Not In ( Select RoomId From BookingRoom Join Booking On Booking.Id = BookingRoom.BookingId Where Booking.StartDate <= 'DesiredEndDate' And Booking.EndDate >= 'DesiredStartDate' )Order By Room.Id
因此,使用原始示例,我们可能会得到:
Select Room.IdFrom RoomWhere Room.Id Not In ( Select RoomId From BookingRoom Join Booking On Booking.Id = BookingRoom.BookingId Where Booking.StartDate <= '2013-05-15' And Booking.EndDate >= '2013-05-14' )Order By Room.Id



