Bonjour,
J'ai écris une requête SQL qui récupère des informations dans plusieurs tablas à partir de l'id d'une plante :
La requête générée me donne ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
et le résultat obtenu est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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
J'aimerais afficher le nom effects qui se trouvent dans cette table :
En passant par cette table (j'ai l'id des hinteractions) :
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.
Partager