Stack Overflow em Português Asked by Luciano Junior on December 9, 2020
Eu gostaria de converter a seguinte query SQL para Query Builder (Laravel):
$duels = DB::select('SELECT r.id, r.name FROM tournaments t
INNER JOIN duels d ON t.id = d.tournament_id
INNER JOIN riders r ON d.rider_a_id = r.id OR d.rider_b_id = r.id
WHERE t.id ='.$id)
Alguém poderia me ajudar?
Desde já agradeço.
Fiz a conversão, uma dica as vezes não é montar o um query dessa forma, pois eu por exemplo peguei querys complexas com mais de 10 linhas de query que se tornariam mais de 30 e ficaria ruim a manutenção, mas isso é apenas uma dica pessoal.
Segue a query convertida:
$duels = DB::table('tournaments t')
->select('r.id', 'r.name')
->join('duels d', 't.id', '=', 'd.tournament_id')
->join('riders r', function($join){
$join->on('d.rider_a_id','=','r.id');
$join->orOn('d.rider_b_id','=','r.id');
})
->where('t.id', '=', $id)
->get();
Resultado que ela me retornou usando o toSql();
:
select `r`.`id`, `r`.`name` from `tournaments t` inner join `duels d` on `t`.`id` = `d`.`tournament_id` inner join `riders r` on `d`.`rider_a_id` = `r`.`id` or `d`.`rider_b_id` = `r`.`id` where `t`.`id` = ?
Testa ai e da um feedback, pois não tive como testar, para mais informações eu vou deixar o link da documentação:
Answered by Bulfaitelo on December 9, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP