Суммируйте значения из столбцов в связанных таблицах без дубликатов в MySQL / Laravel - PullRequest
0 голосов
/ 27 января 2020

У меня есть запрос, который добавляет суммы значений в столбцах из связанных таблиц, например:

Product::where('type', 'physical')
    ->leftJoin('offline_purchases', 'products.id', '=', 'offline_purchases.product_id')
    ->leftJoin('online_purchases', 'products.id', '=', 'offline_purchases.product_id')
    ->groupBy('products.id')
    ->selectRaw('products.id as id, products.name as name, sum(offline_purchases.quantity) as total_offline_purchases, sum(online_purchases.quantity) as total_online_purchases');

, но это не работает, потому что если есть 2 онлайн-покупки и 2 оффлайн-покупки, mysql сгенерирует 4 строки для данного продукта, и суммы будут в два раза больше, чем они должны быть.

Использование ключевого слова distinct в суммах не будет работать, поскольку оно будет суммировать только отдельные количества, а не сумму количество покупок с разными идентификаторами.

Есть ли способ получить сумму количеств разных покупок обоих типов только с MySQL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...