我有一个模型Restaurant
,一个Restaurant
有一个或多个Order
。如何获得订单最多的顶级餐厅?假设前5名。
我不太确定如何使用口才模型来完成此任务。
编辑:
使用原始查询,我可以找到要构建的正确查询。
SELECT
R.name, count(O.id) as total
FROM restaurants AS R
LEFT JOIN orders as O ON R.id = O.restaurant_id
GROUP BY R.id
ORDER BY total DESC
但是我不知道如何使用
Fluent
创建它看起来我找到了想要的东西:
return Restaurant::select(['*', DB::raw('count(orders.id) as total')])
->leftJoin('orders', 'restaurants.id', '=', 'orders.restaurant_id')
->groupBy('restaurants.id')
->orderBy('total', 'DESC')
->limit(5);
最佳答案
我已将答案添加到主题开始。