MYSQL日期比较查询

时间:2016-04-27 15:57:10

标签: mysql date compare

我正在尝试返回一个车辆列表,我知道它们尚未在当前日期范围内预订。我有一个tblVehicles表:

ID     Name
1      BMW
2      Merc
3      Land Rover
4      Hummer
5      Convertable

我还有一张表(tblDiary),其中包含车辆使用的所有日期:

ID     VehicleId     startDate     endDate
1      1             2016-06-20    2016-06-22
2      1             2016-06-24    2016-06-24
3      2             2016-05-01    2016-06-05

所以我正在尝试编写一个查询,我想找到2016-06-21和2016之间可用的车辆。 2016年6月23日。因此,在这种情况下,期望的结果将是:

ID     Name
2      Merc
3      Land Rover
4      Hummer
5      Convertable

最有效的方法是什么?

1 个答案:

答案 0 :(得分:1)

SELECT  *
FROM    tblVehicles v
WHERE   NOT EXISTS
        (
        SELECT  NULL
        FROM    tblDiary d
        WHERE   d.vehicleId = v.id
                AND endDate >= '2016-06-21'
                AND startDate <= '2016-06-23'
        )