【问题标题】:Query for which vehicle is available on for a booking查询可预订的车辆
【发布时间】:2017-03-27 12:12:12
【问题描述】:

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

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

我将发布设计:

示例:

示例:

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

【问题讨论】:

  • 我删除了不兼容的数据库标签。请标记您实际使用的数据库。
  • 你的问题中查询的结果是什么?
  • 运行查询时,我目前正在取回所有车辆,但我应该只取回 12 月 9 日至 18 日期间未租用的车辆
  • 请在您的问题中输入一些示例数据和预期结果
  • NOT EXISTS 将直接回答问题

标签: php sql


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2016-10-01
    • 2014-04-20
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多