繁体   English   中英

Laravel查询构建器顺序不适用于左连接

[英]Laravel query builder order by doesn't work with left join

为什么orderBy不起作用,它不是由nbr_votes按降序排序的?

$all_players = DB::table('example_players')->leftJoin('example_votes', 'example_votes.from_player_id', '=', 'example_players.id')
                                           ->select('example_players.id', 'example_players.name', 'example_players.display_name', 'example_players.role', 'example_players.picture', DB::raw("sum(case example_votes.vote when 'like' then 1 else 0 end) as nbr_votes"))
                                           ->orderBy('nbr_votes', 'desc')                                          
                                           ->groupBy('example_players.id')                                         
                                           ->get();

编辑问题解决了我将列from_player_id与另一个混淆。 感谢您的帮助:)

我认为你应该在订购结果之前进行分组。

$all_players = DB::table('example_players')->leftJoin('example_votes', 'example_votes.from_player_id', '=', 'example_players.id')
                                            ->select('example_players.id', 'example_players.name', 'example_players.display_name', 'example_players.role', 'example_players.picture', DB::raw("count(example_votes.id) as nbr_votes"))
                                            ->groupBy('example_players.id') 
                                            ->orderBy('nbr_votes', 'desc')                                                                
                                            ->get();
$all_players = DB::table('example_players')->leftJoin('example_votes', 'example_votes.from_player_id', '=', 'example_players.id')
                                           ->select('example_players.id', 'example_players.name', 'example_players.display_name', 'example_players.role', 'example_players.picture', DB::raw("count(example_votes.id) as nbr_votes"))
                                           ->groupBy('example_players.id')                                         
                                           ->orderBy(DB::raw("count(examples_votes.id)"),'desc')                                          
                                           ->get();

这是因为orderby不知道你用字段给出的名字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM