我有 2 张 table ,一张是产品,一张是我最喜欢的,为了简单起见,我显示了相关行。
餐 table 产品
ID
餐 table 最爱
user_id 查询中不需要
产品 ID
我想要的是找到最喜欢的表中最常见的前 10 个产品。我想我必须这样做
favourit::groupBy(product_id)
和
favourit::orderBy(ammount(sum of all product_ids), desc)
但是我怎样才能获得订购的金额(所有product_id的总和)?另外,此查询(使用分组)是否可以与产品表连接,以便我在一个查询中获取产品?
最佳答案
您应该能够像这样编写查询: 这是根据 Caveman42 Sql 查询改编的。
favourit::select('product_id', DB::raw('COUNT(product_id) as count'))
->groupBy('product_id')
->orderBy('count', 'desc')
->take(10);
然后,我不知道如何获得与你们产品的关系。
编辑:如果您的关系已在您的产品型号中设置。您应该能够使用 with() 函数连接产品表:
favourit::with('product')
->select('product_id', DB::raw('COUNT(product_id) as count'))
->groupBy('product_id')
->orderBy('count', 'desc')
->take(10);
关于php - Laravel 获得最受欢迎产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24782722/