Выберите строки с одинаковыми значениями - PullRequest
0 голосов
/ 30 мая 2018

Как это сделать в Laravel?

1) получить из строк таблицы, где user_id имеет равные значения?

2) вернуть сумму some_amount значений из выбранных строк

Table:
 - id;
 - user_id;
 - some_amount;

Таблица имеет множество сертификатов с некоторой суммой денег, которая принадлежит разным пользователям.Мне нужно найти все сертификаты, принадлежащие одному пользователю (один пользователь может иметь несколько сертификатов) и посчитать, сколько денег он имеет на все свои сертификаты

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Если вы не ищете решение для запроса этого запроса для отдельного пользователя, похоже, что вы хотите сгруппировать по пользователю и суммировать результаты сертификатов.

Ответ от @PhilCross довольно приятныйзакрыть, вам просто нужно изменить его, чтобы добавить предложение группы и удалить условие where.Примерно так:

ModelName::groupBy('user_id')->sum('some_amount');

или

\DB::table('table_name')->groupBy('user_id')->sum('some_amount');

Обычно красноречиво, или у построителя запросов будет метод, который относится к тому, как вы это делаете в сыром SQL.Я нахожу полезным написать или подумать о том, как написать исходный SQL, а затем медленно заполнить eloquent или конструктор запросов из этого.

0 голосов
/ 30 мая 2018

Если вы используете модель:

ModelName::where('user_id', 1)->sum('some_amount')

Если вы используете построитель запросов:

\DB::table('table_name')->where('user_id', 1)->sum('some_amount');

Это документация для построителя запросов:

https://laravel.com/docs/5.6/queries

Модели: https://laravel.com/docs/5.6/eloquent Модельные отношения: https://laravel.com/docs/5.6/eloquent-relationships Коллекции: https://laravel.com/docs/5.6/collections

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