数据库结构
1:user用户表 id
2:user_attention用户收藏文章关联表 id,user_id,article_id
3:user_comment用户留言文章关联表 id,user_id,article_id,comment
要求:用户列表,查询文章收藏数,留言数,并且能够排序. 如果用laravel模型关联withCount就能得到数量,但没法根据数量排序。现在尝试用join联表查询,但attentions和comments结果总是一样,该怎么写得到正确结果?或者laravel能根据withCount结果排序吗
$list=User::leftjoin('user_attention as ua','ua.user_id','=','user.id')
->leftjoin('user_comment as uc','uc.user_id','=','user.id')
->selectRaw('user.id,user.name,user.img,count(ua.id) as attentions,count(uc.id) as comments')
->groupBy('user.id')
->paginate(10);
orderByRaw(DB::count(uc.id))
试试这个能不能根据count值排序呢,我没试验,记得大概这样用过。