我正在尝试找出哪些车辆(如果有的话)在一对用户输入变量之间作为日期是免费的。
用于旅行的每辆车在行中都有旅行开始和结束的开始日期和结束日期,因此该车辆不可用。
到目前为止,我几乎获得了所有列出的注册信息,而不是任何经过过滤的结果。
SELECT vehicle_registration FROM (select vehicle_registration FROM trips WHERE departure not BETWEEN :departure AND :return and return not BETWEEN :departure AND :return) group by vehicle_registration
任何线索,我想念的是什么?
您正在使用AND,这意味着两个条件都必须为真。您需要改用OR:
select vehicle_registration from trips where departure not between :departure and :return or return not between :departure and :return
一方面,如语法突出显示所示,列名称中return的 错误 名称不是。这是Oracle中的保留字,如果可以的话,应避免使用它。
return