Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » Subquery в join » 08.11.2019 23:43:48

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

Подвал раздела