我试图在.NET中创建预订系统。我有一个名为Booking,Room和BookingRoom的表的数据库。返回范围以外的结果
房间包含房间号码为Room.RoomID。 BookingRoom只有两列,RoomID和BookingID。 预订有几列,但我想使用的列是CheckInDate和CheckOutDate以及BookingID。
室 - > BookingRoom - >订房
这里是我现在所在:
SELECT DISTINCT r.RoomID
FROM Room r
RIGHT JOIN BookingRoom br ON br.RoomID = r.RoomID
RIGHT JOIN Booking b ON b.BookingID = br.BookingID
RIGHT JOIN Rates ra ON r.RateID = ra.RateID
WHERE (b.CheckInDate < '2015/06/21 00:00:00' OR b.CheckInDate > '2015/06/27 23:59:59.999') AND (b.CheckOutDate < '2015/06/27 00:00:00' OR b.CheckOutDate > '2015/06/21 23:59:59.999');
这不幸的是给我的所有房间列表一样,同时它排除在该范围内的房间,房间号码与另一个预订位于外部。
现在我不能为我的生活找出是否有可能返回房间列表,但不包括与CheckInDate和CheckOutDate范围内的日期相匹配的房间。