Bonjour,

Toujours dans le développement d'une console d'administration, je rencontre un problème de requête SQL avec tables intermédiaires multiples.

La requête suivante fonctionne à 80%, mais dès que l'ID Membre n'est pas présent dans l'une des tables intermédiaires, il m'affiche l'ensemble des fonctions présentes dans la table et non celles du membre.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$mbr_query = "SELECT *,    GROUP_CONCAT(DISTINCT groupe ORDER BY groupe SEPARATOR ', ') AS groupe_list,
	GROUP_CONCAT(DISTINCT type_membre ORDER BY type_membre SEPARATOR ', ') AS type_membre_list,
	GROUP_CONCAT(DISTINCT fonction ORDER BY fonction SEPARATOR ', ') AS fonction_list,
	GROUP_CONCAT(DISTINCT panel ORDER BY panel SEPARATOR ', ') AS panel_list
	FROM tbl_groupe AS G, tbl_type_membre AS TM, tbl_fonction AS F, tbl_panel AS P, tbl_mbr_inter_groupe AS TIG, tbl_mbr_inter_type_membre AS TIM, tbl_mbr_inter_fonction AS TIF, tbl_mbr_inter_panel AS TIP, tbl_membre AS M
	LEFT JOIN tbl_droits ON tbl_droits_id = tbl_droits.droits_id
	LEFT JOIN tbl_cs_cat ON tbl_cs_cat_id = tbl_cs_cat.cs_cat_id
	LEFT JOIN tbl_talent_card ON tbl_talent_id = tbl_talent_card.talent_id
	LEFT JOIN tbl_test_arp ON tbl_test_arp_id = tbl_test_arp.test_arp_id
	LEFT JOIN tbl_test_usp ON tbl_test_usp_id = tbl_test_usp.test_usp_id
	WHERE (M.mbr_id =" .$_GET['id'].") AND (TIG.inter_mbr_id = M.mbr_id AND TIG.inter_groupe_id = G.groupe_id 
	AND TIM.inter_mbr_id = M.mbr_id AND TIM.inter_type_membre_id = TM.type_membre_id
	OR TIF.inter_mbr_id = M.mbr_id AND TIF.inter_fonction_id = F.fonction_id
	OR TIP.inter_mbr_id = M.mbr_id AND TIP.inter_panel_id = P.panel_id)";
J'ai essayé différentes façons de faire mais aucune ne répond à mes besoins.

Le but est d'afficher le profil complet du membre.

merci d'avance pour votre aide...