簡體   English   中英

選擇laravel中價格總和等於或1000的所有行

[英]Select all rows where the sum of price equals or 1000 in laravel

我想選擇價格列總和為 1000 或以下的所有行。 我怎樣才能用 Laravel 實現它? 請建議。 我是laravel的新手。

我的桌子只有 4 列

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

我需要使用traditional DB::table('orders')->select()... query (not using model)選擇所有行,其中價格列的總值為 1000。

我知道 OP 要求 RAW SQL 語句,但由於使用Laravel ,獲得這些訂單的最佳方法是利用Laravel Eloquent引擎,如下所示:

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

順便說一句,如果userid堅持像user_id這樣的 laravel 約定會更好,但那是另一種情況。

如果這是您的意圖,您應該能夠輕松地將此請求分組為 userid,而不是order_id

歸功於巴特的回答

$orders = DB::table('orders')
       ->where('price','<=',1000)
       ->select(
         DB::raw(
            'col1,
             col2,
             col3,
             sum AS "price_total"')
      )
      ->get();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM