我有一個包含服務車輛詳細信息的表格「服務」。它有一個id和Vehicle_registrationNumber,它是一個外鍵。每當車輛進行維修時,都會有新的記錄。因此,例如,如果我使用註冊ABCD爲汽車提供服務,它將創建新的行,並且我將在服務表中設置car_reg,日期和汽車的里程數(id設置爲自動增量)(例如12 | 20/01/2012 | ABCD | 1452,同一輛車的另一項服務將創建第15行| 26/01/2012 | ABCD | 4782)。帶連接的Mysql子查詢
現在我想檢查汽車是否需要一項服務(最後一項服務要麼是6個月或更長時間,要麼是目前的汽車裏程已超過自上次服務以來的1000多英里),爲此我需要知道最後一次服務的日期和最後一次服務的汽車行駛里程。所以我想創建一個子查詢,它會爲每輛汽車返回一行,而我感興趣的行是最新的(無論是最大的ID還是最新的endDate)。我還需要與其他表加入吧,因爲我需要爲我的觀點(我用笨,但不知道是否有可能使用CI的ActiveRecord類寫的子查詢)
SELECT * FROM (
SELECT *
FROM (`service`)
JOIN `vehicle` ON `service`.`Vehicle_registrationNumber` = `vehicle`.`registrationNumber`
JOIN `branch_has_vehicle` ON `branch_has_vehicle`.`Vehicle_registrationNumber` = `vehicle`.`registrationNumber`
JOIN `branch` ON `branch`.`branchId` = `branch_has_vehicle`.`Branch_branchId`
GROUP BY `service`.`Vehicle_registrationNumber`)
AS temp
WHERE `vehicle`.`available` != 'false'
AND `service`.`endDate` <= '2011-07-20 20:43'
OR service.serviceMileage < vehicle.mileage - 10000
創建是行不通的,因爲沒有那麼老服務條目將被過濾掉的聲明。另一個提示里程應該是1000或10000 ..不同的文字和sql語句 – rauschen