簡體   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