2 回答

TA贡献1848条经验 获得超6个赞
您可以在 Eloquent 中使用子查询,例如:
DB::select(function ($query) { $query->selectRaw('COUNT(*) AS total') ->from('table') ->groupBy('field_1'); ->groupBy('field_2'); }, 'table')->count('total');

TA贡献1868条经验 获得超4个赞
为此使用Eloquent确实没有意义。
Customers::selectRaw('count(*)')->fromSub(function ($subquery) {
$subquery->selectRaw('count(*)')
->from('table')
->groupBy(['field1','field2']);
}, 'total')
->get();
在控制台中运行此命令会得到以下结果:
--> use App\User;
User::selectRaw('count(*)')->fromSub(function ($subquery) {
$subquery->selectRaw('count(*)')
->from('table')
->groupBy(['field1','field2']);
}, 'total')
->toSql();
=> "select count(*) from (select count(*) from `table` group by `field1`, `field
2`) as `total`"
你会注意到我使用了自己的模型。这就是我的意思,即使用雄辩是没有意义的。从调用或其任何变体(在本例中)的那一刻起,您就服从于查询生成器。在这种情况下,您甚至不需要调用模型的表。from()fromSub
- 2 回答
- 0 关注
- 178 浏览
添加回答
举报