Laravel - использование sum () с groupBy () не возвращает столбец groupBy с нулевым значением - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь получить сумму сумм по группам по time_ids. Я передаю следующие time_ids в виде массива.

Красноречивый запрос выглядит следующим образом

$time_ids = [1, 2, 3, 4];

$amount = Data::selectRaw('ifnull(sum(amount),0) as amount')
    ->whereIn('time_ids', $time_ids)
    ->groupBy('time_ids')
    ->pluck('amount')
    ->toArray();

В результате я получаю массив только из 3 значений.

В моем В базе данных time_ids = 1 не будет никакого значения, но я хочу, чтобы запрос возвратил 0, если он не смог найти никакого значения.

1 Ответ

0 голосов
/ 11 февраля 2020

Недостаточно репутации, поэтому добавьте ее в качестве ответа. Ваш запрос выглядит хорошо для меня. Попробуйте запросить базу данных напрямую и посмотреть, что она возвращает. Используйте это для генерации необработанных sql

$amount = Data::selectRaw('ifnull(sum(amount),0) as amount')->whereIn('time_ids',$time_ids)->groupBy('time_ids')->toSql();
...