我为已预订的房间准备了一个简单的 mysql 表。这里的sql结构:
CREATE TABLE Rooms (
`ID` int, `Description` varchar(50)
);
INSERT INTO Rooms values
(123, 'Room in Frankfurt'),
(234, 'Room in Wiesbaden'),
(245, 'Room in Darmstadt');
CREATE TABLE Bookings (
`ID` int, `StartTime` datetime, `EndTime` datetime, `post_ID` int
);
INSERT INTO Bookings
(`ID`, `StartTime`, `EndTime`, `post_ID`)
VALUES
(1, '2018-01-05', '2018-04-05', 123),
(2, '2018-08-01', '2018-10-01', 123),
(3, '2019-02-01', '2019-06-01', 123),
(4, '2018-02-01', '2018-06-01', 234),
(5, '2018-08-01', '2018-09-01', 294),
(6, '2018-09-01', '2018-11-30', 234),
(7, '2018-11-01', '2018-12-30', 294)
;
在这张表中,我们可以看到我们拥有的所有房间的所有预订。我的问题是找到一个 SQL 查询来找到一个房间的空闲插槽。用户可以给出这些参数:
- 最早入住日期(例如:2018-10-01)
- 最近签到的日期(例如:2018-10-15)
- 以月为单位的最长期限(例如:3 个月)
所以用户需要3个月的房间,从01-15开始。2018 年 10 月。
我怎样才能做到这一点?我真的不明白。
谢谢!