[英]Select all rows where the sum of price equals or 1000 in laravel
我想選擇價格列總和為 1000 或以下的所有行。 我怎樣才能用 Laravel 實現它? 請建議。 我是laravel的新手。
我的桌子只有 4 列
id
userid
order_id
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.