gpt4 book ai didi

php - Laravel 5.4 Eloquent SUM 和 ORDER BY 数据透视表列

转载 作者:行者123 更新时间:2023-11-29 18:12:19 27 4
gpt4 key购买 nike

我需要一个 Eloquent 查询来检索数据库中购买最多的产品。这些表是 productsproducts_purchasespurchases。产品和购买都具有多对多的关系。

数据透视表 products_purchases 有一个名为 quantity 的数据透视字段,其中包含购买时购买的产品的总数量。

我尝试获取这样的记录:

$data['most_purchased'] = Products::whereHas('purchases', function($query){
$query->selectRaw('SUM(products_purchases.quantity) AS qty')->orderBy('qty', 'desc')->groupBy('product_id');
})->get();

但它没有给出准确的值,正确的方法是什么?

最佳答案

此代码有效:

Products::join('products_purchases', 'product.id','=','products_purchases.product_id')
->selectRaw('product.*, SUM(products_purchases.quantity) AS qty')
->groupBy('product.id')
->orderBy('qty', 'desc')
->get();

但是,是否有另一种“更干净”的方法可以在不使用join的情况下做到这一点?

关于php - Laravel 5.4 Eloquent SUM 和 ORDER BY 数据透视表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47296573/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com