我有一张表与被“喜欢”的艺术家有关系。 IE。像这样:
artists_id fan_id
1 1
1 2
1 3
4 1
4 2
“艺术家”和“粉丝”表包含这些实体的信息。我想按照 Laravel 4 中 Eloquent 查询生成器中喜欢艺术家的用户总数来排序查询结果(即按计数对结果进行分组,然后按计数降序排序)。我想提取艺术家信息。
这是我的:
$artists_most_popular = DB::table('artists')
->join('fanartists', 'artists.id', '=', 'fanartists.artist_id')
->orderBy('sum('fanartists.fan_id')')
->groupBy('artists.id')
->take(50)
->get();
return $artists_most_popular;
我知道这是不对的,但我不知道如何以 Eloquent 方式构建它。有任何想法吗?谢谢。
最佳答案
在 orderBy
中尝试 DB::raw
。所以你的例子是......
$artists_most_popular = DB::table('artists')
->join('fanartists', 'artists.id', '=', 'fanartists.artist_id')
->orderBy(DB::raw('sum(\'fanartists.fan_id\')'))
->groupBy('artists.id')
->take(50)
->get();
return $artists_most_popular;
关于mysql - 如何在 Eloquent Query Builder (Laravel 4) 中按 "SUM"排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20697019/