Php 拉威尔获得最受欢迎的产品
我有两个表,一个是产品表,另一个是收藏夹表,为了保持简单,我显示了相关的行 表格poducts 身份证Php 拉威尔获得最受欢迎的产品,php,sql,laravel-4,Php,Sql,Laravel 4,我有两个表,一个是产品表,另一个是收藏夹表,为了保持简单,我显示了相关的行 表格poducts 身份证 表格收藏夹IT 查询中不需要用户\u id 产品标识 我想要的是在Favorit表中找到最常见的前10种产品。我想我必须这么做 favourit::groupBy(product_id) 及 但是,我如何获得要订购的amount(所有产品标识的总和)?此外,此查询(带有groupby)是否可以与products表联接,以便我在一个查询中获得产品?从SQL的角度来看,这是如何从fa
表格收藏夹IT 查询中不需要用户\u id 产品标识
我想要的是在Favorit表中找到最常见的前10种产品。我想我必须这么做
favourit::groupBy(product_id)
及
但是,我如何获得要订购的amount(所有产品标识的总和)?此外,此查询(带有groupby)是否可以与products表联接,以便我在一个查询中获得产品?从
SQL
的角度来看,这是如何从favorit表中获得前10个产品的:
Select TOP 10
Product_id
,COUNT(Product_id) as [Count]
From
favorit
Group By
Product_id
Order By
COUNT(Product_id) desc
这将为您提供前10个产品标识,并以最高计数对其进行排序
我不太熟悉
PHP
,因此我无法告诉您如何实现它,抱歉:(您应该能够这样编写查询:
这是对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);
favourit::with('product')
->select('product_id', DB::raw('COUNT(product_id) as count'))
->groupBy('product_id')
->orderBy('count', 'desc')
->take(10);