我有一张桌子,与已被“喜欢”的艺术家有关系。即像这样的东西:
artists_id fan_id
1 1
1 2
1 3
4 1
4 2
有表“艺术家”和“粉丝”,其中包含这些实体的信息。我想通过在Laravel 4中的Eloquent查询构建器中喜欢艺术家的用户的总和来排序查询的结果(即按计数对结果进行分组,然后通过count desc对它们进行排序)。我想提取艺术家的信息。
这就是我所拥有的:
$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;
我知道这是不对的,但我不知道如何以雄辩的方式构建这个。有任何想法吗?谢谢。
答案 0 :(得分:2)
在DB::raw
中尝试orderBy
。所以你的例子就是......
$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;