Может кто-нибудь помочь мне с запросами, которые я написал, и они не сработали правильно, возможно, кроме первого.Запрос SQL 4 tables
У нас есть 4 таблицы с - столбцами:
table_cars - id | brand | type | license
table_equipments - id | name | description
table_distances - id_car | date | distance
table_cars_equipments - id_car | id_equipment
И вопросы:
- Показать все автомобили, которые имеют оборудование «огнетушитель» и ехали вчера
- Показать все бренды без оборудования
- Показать общее расстояние, пройденное автомобилем «xxxx» за последний месяц
- Показать среднее расстояние за день ведомой автомобилями из «некоторого описания»
Мое решение:
SELECT
table_cars.id,
table_cars.brand,
from table_equipments
INNER JOIN table_cars_equipments ON table_equipments.id = table_car_equipments.id_equipment
INNER JOIN table_cars ON table_cars .id = table_cars_equipments.id_car
INNER JOIN table_distances ON table_distances.id_car = table_cars.id
WHERE table_equpments.name = 'fire extinguisher'
AND table_date.date = NOW() - INTERVAL 1 DAYS;
SELECT
table_cars.brand
from table_cars
INNER JOIN table_cars_equipments ON table_cars_equipments.id_car = table_cars .id
WHERE table__car_equpments.id_equipment = 0 OR NULL
SELECT table_cars.license,
sum(distance) as distance,
from table_distances
inner join table_cars on table_distances. Id_car = table_cars.id
where table_distances.date >= NOW() - INTERVAL 30 DAYS
and table.distances.date <= NOW()
SELECT Avg(distance) as avg_dist
from(
SELECT table_distances.distance,
Count(*) as dist
from table_distances
INNER JOIN table_cars_equipment ON table_dustances.id_car = table_cars_equipments.id_car
INNER JOIN table_equipments ON table_cars_equipments.id_equipments = table_equimpents.id
WHERE table_equipments.distance = "Ilfov"
GROUPBY table_distances.date) a;