查询可用于预订的车辆

时间:2017-03-27 12:12:12

标签: php sql

我有一个汽车租赁数据库,我正在尝试运行一个查询,返回两个日期之间可用的车辆。即开始和结束日期。我只想看看我进入的特定日期有哪些车辆可用。

我无法让它运行。它目前只是返回所有车辆,而不是在日期之间。租用的车辆不应该影响查询,但它位于中间。

我将发布设计:

Image

样品:

Booking 样品:

Answer

SELECT v.*
FROM vehicles AS v 
LEFT JOIN (SELECT b.* 
           FROM booking AS b 
           WHERE b.end_rent_date >= 2016-12-09 and b.start_rent_date <= 2016-12-18
          )  AS b ON v.vehicle_id = b.vehicle_id
WHERE b.vehicle_id is null

1 个答案:

答案 0 :(得分:1)

问题在于内部查询中的日期。我没有在MS SQL上遇到这种情况的错误,所以你可能正在使用这个RDBMS。简单地说,将日期放在引号中,以便将转换工作日期正确。

SELECT v.*
FROM vehicles AS v 
LEFT JOIN (SELECT b.* 
           FROM booking AS b 
           WHERE b.end_rent_date >= '2016-12-09' and b.start_rent_date <= '2016-12-18'
          )  AS b ON v.vehicle_id = b.vehicle_id
WHERE b.vehicle_id is null