Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta de junção bruta do Laravel 5.4


Você pode usar o retorno de chamada para criar uma consulta de junção mais complicada.
->leftJoin(TBL_CAT, function($query){
     $query->on(TBL_CAT.'id', '=', 'p.cat_id')->where("**", "**", "**");
})

Aqui está o link do documento laravel - https://laravel.com/docs/5.4/queries# junta seção "Cláusulas de junção avançadas".

UPD::Como mencionado no comentário, não é uma boa ideia ter string para esses tipos de dados. A pesquisa de causa por igualdade deve ser muito mais simples do que a verificação de string. Mesmo que sua quantidade de dados não tenha grande diferença, você nunca sabe o que acontecerá com seu aplicativo no futuro.

Mas se você ainda quer fazer isso eu acho que você pode tentar assim
->leftJoin(TBL_CAT, function($query){
     $query->where(DB::raw("FIND_IN_SET(".TBL_CAT.".id, p.cat_id)"), "<>", "0");
})

Join que verificará a existência de id em cat_id.