php - Laravel 获得最受欢迎产品

标签 php sql laravel-4

我有 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/

相关文章:

Mysql 根据条件分组求和

php - Laravel Eloquent 如何使用 between operator

php - Laravel 邮件 : pass string instead of view

php - laravel blade @include 不工作

php - 如何设置 SSH session 的 PHP 版本?

php - sprintf(): Too few arguments是什么意思

mysql - WordPress MySQL : add new term relationships if term_taxonomy_id == 4

sql - 更新涉及 groupby 子句的表,同时避免使用临时表

php - 我的 if 语句的输出始终相同

php - sendmail_path 的 .user.ini 将不适用于子目录