Rub*_*ben 1 php laravel laravel-4
我正在尝试在行结果中使用 avg 和 count 执行查询,如下所示:
SELECT r.id, avg( p.puntuacio ), count(p.puntuacio)
FROM receptes AS r, puntuacio_receptes_usuaris AS p
WHERE r.id = p.recepta_id
GROUP BY r.id
Run Code Online (Sandbox Code Playgroud)
但我不知道我可以在 Laravel 上做什么,因为在 Eloquent 中不能在结果行中写入 avg 或计数。
非常感谢
查询生成器(Fluent)方法:
DB::table(DB::raw('receptes as r, puntuacio_receptes_usuaris as p'))
->select(array('r.id', DB::raw('avg( p.puntuacio ) as avg_p'), DB::raw('count(p.puntuacio) as count_p')))
->where('r.id', DB::raw('p.recepta_id'))
->groupBy('r.id')
->get();
Run Code Online (Sandbox Code Playgroud)
这应该没有任何问题,但如果你想用你的 Eloquent 模型来做,我建议使用JOIN而不是在FROM.
您可以通过访问avg_p和来访问平均值和计数结果count_p。
注意:
DB::raw()指示 Laravel 不要逃避其中的内容,请参阅文档。| 归档时间: |
|
| 查看次数: |
3798 次 |
| 最近记录: |