查询可预订的车辆
Posted
技术标签:
【中文标题】查询可预订的车辆【英文标题】: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
将直接回答问题
【参考方案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
【讨论】:
以上是关于查询可预订的车辆的主要内容,如果未能解决你的问题,请参考以下文章