我正在嘗試爲我正在處理的項目創建SQL語句。它應該返回所有尺寸合適的車輛vehicleId
,並且該租賃表格當天尚未安排在該日期。確保沒有重疊
架構
Vehicles(vehicleId, size)
Rental(rentId, customerId, vehicleId, startdate, enddate, cost)
SELECT vehicles.vehicleId
FROM vehicles
WHERE vehicles.size= "van"
AND vehicles.vehicleId <>
(SELECT rental.vehicleId
FROM rental
WHERE (rental.startdate BETWEEN '2016-04-27' AND '2016-04-30')
OR (rental.enddate BETWEEN '2016-04-27' AND '2016-04-30'))
語句的第一部分之前,AND(涉及2個表),則返回所有大小貨車和第二部分中的vehicleid,之後的AND,應該刪除任何通過檢查開始日期或結束日期是否重疊來計劃在時間範圍內的vehicleid。但是第二部分不是那樣工作的,當運行整個事情時什麼都不會返回。
聲明有什麼問題。
在引號中加入了引號,但語句仍然沒有返回任何內容。 (上面編輯以反映變化) –
如果子查詢可以返回多行數據,那麼您也可能希望'not in'而不是'<>'。 –
不是我所需要的。謝謝我一直堅持這個比我想要承認的更長的時間。 –