我有一個任務表,用于跟蹤任務的汽車里程表值。一項任務與其自身相關,并且具有由具有一個關系定義的一項先前任務。我正在嘗試創建一個范圍來提取查詢中的complete_at_odometer 值。該值等于前一個任務的completed_at_odometer值加上當前任務需要重復的頻率。例如當前的任務A需要每10英里完成一次。最后一個任務,任務 B 在 5 英里處完成。我正在嘗試創建一個范圍,將值complete_at_odometer 添加到應等于 15 的結果中。這是我到目前為止所擁有的:public function scopeWithCompleteByOdometer($query){ return $query ->join('tasks as oldTask', 'oldTask.current_task_id', '=', 'tasks.id') ->select( '*', 'oldTask.completed_at_odometer as last_odometer', 'tasks.distance_interval as interval' );}我不確定如何將值last_odometer 和interval 添加在一起,同時保留在應用程序的數據庫層中?我正在使用 Laravel 7 和 MySql 5.7。謝謝你的幫助!
1 回答

慕神8447489
TA貢獻1780條經驗 獲得超1個贊
使用DB::raw查詢:
return $query
->join('tasks as oldTask', 'oldTask.current_task_id', '=', 'tasks.id')
->select(DB::raw('(oldTask.completed_at_odometer + tasks.distance_interval) AS total'));
或者從這樣獲得的結果中求和
$a = $row->completed_at_odometer;
$b = $row->distance_interval;
$total = $a+$b
- 1 回答
- 0 關注
- 149 瀏覽
添加回答
舉報
0/150
提交
取消