Выберите все строки, в которых сумма цены равна или 1000 в laravel - PullRequest
0 голосов
/ 30 августа 2018

Я хочу выбрать все строки, в которых сумма столбцов цены равна 1000 или ниже. Как я могу достичь этого с Laravel? пожалуйста, предложите. Я новичок в Laravel.

В моем столе всего 4 столбца

  1. id
  2. userid
  3. order_id
  4. price

Мне нужно выбрать все строки, используя traditional DB::table('orders')->select()... query (not using model), где общее значение столбца цены равно 1000.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Я знаю, что OP запросил оператор RAW SQL, но поскольку использование Laravel , лучший способ получить эти заказы - использовать механизм Laravels Eloquent , например:

$orders = Orders::select(userid, order_id, DB::raw('SUM(price) as price_total'))
->groupBy('order_id')
->havingRaw('SUM(price) <= ?',[1000])
->get();

Кстати, было бы лучше, если бы ИД пользователя придерживался соглашения laravels вроде user_id , но это другой случай.

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

0 голосов
/ 30 августа 2018

Ответ Барту за кредит

$orders = DB::table('orders')
       ->where('price','<=',1000)
       ->select(
         DB::raw(
            'col1,
             col2,
             col3,
             sum AS "price_total"')
      )
      ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...