2

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 を別の列と混同していました。皆さんの助けに感謝します:)

4

2 に答える 2

0
$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 がフィールドに付けた名前を認識していないためです。

于 2016-07-10T22:45:48.440 に答える