我在这个结构中有四个表
cars - id | brand | type | license
equipments - id | name | description
distances - id_car | date | distance
cars_equipments - id_car | id_equipment
我必须提取昨天开车的所有装有“灭火器”的汽车......
到目前为止我设法创建了这个
SELECT cars.id, cars.brand, cars.type, cars.license, cars_equipments.id_car
FROM equipments
INNER JOIN cars_equipments ON equipments.id = cars_equipments.id_equipment
INNER JOIN cars ON cars.id = cars_equipments.id_car
INNER JOIN distances ON distances.id_car = cars.id
WHERE equipments.name LIKE 'fire extinguisher'
这只返回一辆带有“灭火器”的汽车,因此它无法正常工作,如果我添加
AND distances.date = DATE_SUB(NOW(), INTERVAL 1 DAY)
将它与最后一天结合起来它不起作用。
答案 0 :(得分:0)
它对你有用吗?
SELECT cars.id, cars.brand, cars.type, cars.license, cars_equipments.id_car
FROM cars
INNER JOIN cars_equipments ON cars.id = cars_equipments.id_car
INNER JOIN equipments ON equipments.id = cars_equipments.id_equipment
INNER JOIN distances ON distances.id_car = cars.id
WHERE equipments.name LIKE 'fire extinguisher'
AND distances.date >= dateadd(day,datediff(day,0,GETDATE()),-1)
AND distances.date < dateadd(day,datediff(day,0,GETDATE()),0)
选中此sql fiddle