【发布时间】:2014-10-26 07:09:09
【问题描述】:
我的数据库中有一个表 USERS 和表 POSTS。
关系(用户类):
public function Posts() {
return $this->hasMany('Post', 'uid', 'id');
}
我的问题是:如何查询用户并按帖子数量排序,如何显示他们的排名位置?
例如
RANK_POS UID USER NUMBER_OF_POSTS
1 5 USER5 23
2 3 USER3 20
3 6 USER6 2
4 1 USER7 2
5 2 USER2 0
所以,我需要统计所有用户的帖子,并按帖子数量对它们进行排序,并生成排名位置。
我试过了
public static function Rank() {
return DB::table('users')
->leftJoin('posts', 'users.id', '=', 'posts.user')
->select(DB::raw('users.id, count(posts.id) as POSTS, users.name, users.surname, users.nickname'))
->groupBy('user.id');
}
这给了我或多或少的好结果,但我仍然无法获得排名位置并且无法通过 POSTS 排序。
如果我尝试添加订单
public static function Rank() {
return DB::table('users')
->leftJoin('link_analytics', 'users.id', '=', 'link_analytics.user')
->select(DB::raw('users.id, count(link_analytics.id) as CONVERSIONS, users.name, users.surname, users.nickname'))
->groupBy('link_analytics.user')
->orderBy('POSTS');
}
它给了我一个错误 UNKNOWN COLUMN 'POSTS'
【问题讨论】:
-
我的回答对你有帮助吗?
标签: php mysql laravel laravel-4 eloquent