我有一个模型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);
答案 0 :(得分:0)
我已经在Topic Start中添加了答案。