2016-07-10 2 views
1

Почему orderBy не работает, он не заказывает nbr_votes в порядке убывания?Laravel query builder order by не работает с левым соединением

$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 с другим. Спасибо за вашу помощь :)

ответ

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('nbr_votes', 'desc')                 
              ->get(); 
+0

Эй, спасибо за ваш ответ. Однако я уже пробовал это, и это ничего не меняет. – Alex1

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 не знает имя, которое вы дали поле с таким.

+0

-> orderBy (DB :: raw («count (overwatch_votes.id)»), «desc») изменяет порядок, но не файл overwatch_votes.id desc – Alex1

+0

Это потому, что я не вижу в вашем запросе таблицу overwatch_votes? Вы должны сначала присоединиться к этой таблице, чтобы заказать ее. – da1lbi3

+0

Я изменил свой код. – da1lbi3

Смежные вопросы