我有一个名为"booking"的php/mysql数据库表:
hotelNo | guestNo | dateFrom | dateTo | roomNo
1 1 2022-03-10 2022-03-17 1
1 2 2019-07-01 2019-07-08 1
4 3 2022-03-01 2022-03-09 6
4 5 2022-07-15 2022-07-25 7
5 6 2022-03-20 2022-03-29 10
5 7 1987-03-10 1987-03-21 12
我的任务是 Select 所有最近一次预订超过两年的房间.
SELECT roomNo, dateTo FROM booking
WHERE Year(CURRENT_DATE)-2 > year(dateTo);
结果是:
roomNo | dateTo
1 2019-07-08
12 1987-03-21
然而,这是不正确的.1号房间的预订时间为2022-03-10,因此不应出现在结果上.我应该在我的查询中实现什么,以便它首先过滤掉旧的预订,然后判断该房间的最新预订是否在两年前结束?
到目前为止,我try 在查询中使用DISTINCT和ORDER BY子句,但对我不起作用.