Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête de jointure brute Laravel 5.4

Vous pouvez utiliser le rappel pour créer une requête de jointure plus compliquée.

->leftJoin(TBL_CAT, function($query){
     $query->on(TBL_CAT.'id', '=', 'p.cat_id')->where("**", "**", "**");
})

Voici le lien sur laravel doc - https://laravel.com/docs/5.4/queries# rejoint Section "Clauses de jointure avancées".

UPD ::Comme mentionné dans le commentaire, ce n'est pas une bonne idée d'avoir une chaîne pour de tels types de données. Parce que la recherche par égalité devrait être beaucoup plus simple que la vérification de chaîne. Même si votre quantité de données ne devrait pas avoir une grande différence, vous ne savez jamais ce qui se passera avec votre application à l'avenir.

Mais si vous voulez toujours faire ça, je pense que vous pouvez essayer comme ça

->leftJoin(TBL_CAT, function($query){
     $query->where(DB::raw("FIND_IN_SET(".TBL_CAT.".id, p.cat_id)"), "<>", "0");
})

Join qui vérifiera l'existence de l'identifiant dans cat_id.