我有一个表格scores
我有保存用户分数的地方。看起来像这样
table `scores`
id | points | user_id
1 5 1
2 2 1
3 4 1
4 1 3
5 10 2
我想选择每个用户,对他的积分求和并显示为排名。上面的结果应该是
user_id | points
1 11
2 10
3 1
我提出的查询是
$sumPoints = Scores::select( DB::raw("sum(points) as numberOfPoints"), DB::raw("count(id) as numberId"))->groupBy("user_id")->first();
问题出在->first()
,因为它只返回一个结果......它正在正常工作。如果我尝试使用->get()
,我会遇到Undefined property
错误。我应该如何使用它?
在phpmyadmin中工作的查询
SELECT count(id) as numberId, sum(points) as numberOfPoints FROM `points` GROUP BY `user_id`
你可以使用这样的东西
$sumPoints = Scores::select( DB::raw("sum(points) as numberOfPoints"), DB::raw("count(id) as numberId"))->groupBy("user_id")->get();
foreach($sumPoints as $point){
dd($point); //OR dd($point->numberOfPoints)
}