Effectivement cela fonctionne nettement mieux. J'ai fait repris ma requête en y ajoutant les parenthèses conseillées comme ci-dessous : SELECT DISTINCT `a`.*, `g`.*, `gs`.* FROM `galette_adherents` AS `a` INNER JOIN `galette_statuts` AS `p` ON `a`.`id_statut`=`p`.`id_statut` LEFT JOIN `galette_cotisations` AS `ct` ON `ct`.`id_adh`=`a`.`id_adh` LEFT JOIN `galette_dynamic_fields` AS `df` ON `df`.`item_id`=`a`.`id_adh` LEFT JOIN `galette_groups_members` AS `g` ON `a`.`id_adh`=`g`.`id_adh` LEFT JOIN `galette_groups` AS `gs` ON `gs`.`id_group`=`g`.`id_group` WHERE (g.id_group = 10 OR gs.parent_group = NULL OR gs.parent_group = 10) AND (df.field_form = 'adh' AND df.field_id = 7 AND LOWER(df.field_val) = '1') ORDER BY `nom_adh` ASC, `prenom_adh` ASC et le résultat est correcte. Est-ce que tu arrives à corriger cela ? Dominique Le 02.11.2014 23:29, Johan Cwiklinski a
écrit :
Salut, Le 02/11/2014 21:08, Famille Rochat a écrit :Bonsoir, La requête donne cela : SELECT DISTINCT `a`.*, `g`.*, `gs`.* FROM `galette_adherents` AS `a` INNER JOIN `galette_statuts` AS `p` ON `a`.`id_statut`=`p`.`id_statut` LEFT JOIN `galette_cotisations` AS `ct` ON `ct`.`id_adh`=`a`.`id_adh` LEFT JOIN `galette_dynamic_fields` AS `df` ON `df`.`item_id`=`a`.`id_adh` LEFT JOIN `galette_groups_members` AS `g` ON `a`.`id_adh`=`g`.`id_adh` LEFT JOIN `galette_groups` AS `gs` ON `gs`.`id_group`=`g`.`id_group` WHERE g.id_group = 10 OR gs.parent_group = NULL OR gs.parent_group = 10 AND df.field_form = 'adh' AND df.field_id = 7 AND LOWER(df.field_val) = '1' ORDER BY `nom_adh` ASC, `prenom_adh` ASCHum... Essaies peut-être de lancer la reqûete via phpmyadmin (ou équivalent), en ajoutant des parenthèses autour des clauses relatives aux groupes : g.id_group = 10 OR gs.parent_group = NULL OR gs.parent_group = 10 ==> (g.id_group = 10 OR gs.parent_group = NULL OR gs.parent_group = 10) Si ça ne fonctionne pas, il faudra que j'y regarde de plus près (si ça fonctionne aussi d'ailleurs :D). ++ |