Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
C Eloquent и вряд ли получится в слепую написать правильно запрос. Но на sql языке другое дело.
Ваш запрос с джойнами с вложенных под запросов это очень глупое решение при больших таблицах, и если его переписать то он не такой и страшный получается вот вам 2 варианту, можете использовать любой на выбор:
SELECT
DISTINCT SUM(min(w.weight)) OVER ()
FROM container AS c
LEFT JOIN weight AS w ON w.container_id = c.id
LEFT JOIN container_run AS cr ON cr.container_id = c.id
WHERE cr.type = 1 OR cr.type IS NULL
GROUP BY c.id;
SELECT sum(test.weight)
FROM (
SELECT
min(w.weight) AS weight
FROM container AS c
LEFT JOIN weight AS w ON w.container_id = c.id
LEFT JOIN container_run AS cr ON cr.container_id = c.id
WHERE cr.type = 1 OR cr.type IS NULL
GROUP BY c.id
) AS test
Страницы 1