4 pièce(s) jointe(s)
[Laravel 7] Récupérer des données via une table non présente dans. ma requête SQL
Bonjour,
J'ai écris une requête SQL qui récupère des informations dans plusieurs tablas à partir de l'id d'une plante :
Code:
1 2 3 4 5 6 7
| $informations_plante = DB::table('herbs')
->select('herbs.name as hname', 'herbs.sciname', 'herbs.id as herbid','hinteractions.id as hinteractionid','hinteractions.note as hinteractionnote','hinteractions.force_id','targets.name as targetname', 'forces.name as force_name')
->leftJoin('hinteractions', 'herbs.id', '=', 'herb_id')
->leftJoin('forces', 'forces.id', '=', 'force_id')
->leftJoin('targets', 'targets.id', '=', 'hinteractions.target_id')->where('herbs.id', $id)
//add here a subquery to select effects.name from hinteractions_has_effects with hinteractions.id
->get(); |
La requête générée me donne ceci :
Code:
select `herbs`.`name` as `hname`, `herbs`.`sciname`, `herbs`.`id` as `herbid`, `hinteractions`.`id` as `hinteractionid`, `hinteractions`.`note` as `hinteractionnote`, `hinteractions`.`force_id`, `targets`.`name` as `targetname`, `forces`.`name` as `force_name` from `herbs` left join `hinteractions` on `herbs`.`id` = `herb_id` left join `forces` on `forces`.`id` = `force_id` left join `targets` on `targets`.`id` = `hinteractions`.`target_id` where `herbs`.`id` = 6
et le résultat obtenu est le suivant :
Pièce jointe 567544
J'aimerais afficher le nom effects qui se trouvent dans cette table :
Pièce jointe 567548
En passant par cette table (j'ai l'id des hinteractions) :
Pièce jointe 567556
Je ne vois pas comment je peux faire avec la requête SQL ci-dessus.
Est-ce que je dois ajouter une sous-requête ?
Merci d'avance pour l'aide.