【发布时间】:2018-05-31 22:37:12
【问题描述】:
我有三个表:uploads、categories 和一个名为 category_upload 的 many-to-many 表。
表格如下所示:
**categories**
id
name
**uploads**
id
name
downloads(integer)
**category_upload**
id
category_id
upload_id
每次我下载“上传”时,下载列中的值都会增加 1。
我想做但不知道如何开始是根据uploads 表中的downloads 列选择前10 个类别。因此,如果downloads 列的总和是来自给定类别的所有上传的最大列,则该类别应该排在第一位,依此类推到第十位。
这可以通过 eloquent 还是仅使用 SQL 来实现?如何实现?任何提示表示赞赏!
这是我在模型中建立关系的方式:
类别:
public function uploads(){
return $this->belongsToMany('App\Upload');
}
上传:
public function category(){
return $this->belongsToMany('App\Category');
}
【问题讨论】:
-
样本数据和期望的结果真的很有帮助。例如,什么是“书”?
-
@GordonLinoff 书是上传的,我更正了。
标签: php mysql sql laravel eloquent