我们在使用laravel时,会有一些特殊情况,例如我们有个考试成绩表,上面有多次考试,有多个学生,怎么实现拿到单个学生的单次考试成绩总和以便进行排序呢?
$students = ScoreView::where("classid",$class_id)->where("examid",$id)
->selectRaw('studentnum,studentname,sum(score) as scoresum') //使用原生sql,计算总和,别名叫做scoresum,同理还有whereRaw等,只要加了Raw就可以用原生语句
->groupBy('studentnum') //根据学生来分组
->orderby("scoresum","desc")->get(); //orderByRaw('scoresum desc')这种写法也可以
这样就能拿到我们需要的,前面那个scoreview是model.代表一张数据表,现在我们这样就把laravel和原生sql结合起来了。
来自 http://blog.csdn.net/amazingdyd/article/details/51492244