У меня есть две таблицы, Cars
и Defect
. Я поддерживаю связь, передавая car_id
таблице дефектов в качестве внешнего ключа.
У меня 3000 записей в таблице автомобилей и 16 тысяч записей в таблицах дефектов (с open_defect
и close_defect
). Я пытаюсь выяснить все автомобили (3000) с количеством открытых дефектов (если нет открытых дефектов против автомобиля, следует вернуть 0).
Я пытаюсь ответить на несколько вопросов:
SELECT cars.cars_id_primary ,IF(COUNT(defect.defect_id_primary)>0,1,0) AS `def_count`
FROM cars
LEFT JOIN defect ON cars.cars_id_primary = defect.cars_id AND defect.defect_status_id =1
WHERE cars.stage_id !=5
GROUP BY cars.cars_id_primary
ORDER BY cars.updated_on
Этот запрос дает мне результат, но занимает слишком много времени для выполнения.
Нужно оптимизировать этот запрос. Я застрял, чтобы оптимизировать.
Любая помощь приветствуется, заранее спасибо.