Bonjour,
j'aimerais beaucoup avoir un peu d'aide dans la conception d'une requête. Je ne suis pas encore très doué en SQL et je m'arrache les cheveux sur un select qui me semble assez simple.
Pour ma requête j'utilise trois tables.
- Une table 'T_Personne' contenant les informations de la personne
- Une table 'T_Agence' contenant les informations de l'agence
- Une table 'T_AffPersonnes' faisant le lien entre agences et personnes
Je voudrais en fait afficher tous les utilisateurs de la table 'T_Personne', ainsi que leur agence respective (s'il y en a une !!). Jusque là, pas de problème. Mon problème apparaît lorsque je veux afficher uniquement les affectations encore existantes.
La table 'T_AffPersonnes' contitent un champ booleen 'Supprimer' qui me permet de garder un historique des affectations en évitant de les supprimer de la base. Lorsque j'ajoute un critère (WHERE TAF.Supprimer=0), la requête me liste uniquement les entrées présentes dans la table 'T_AffPersonne'. Or tous les utilisateurs ne sont pas nécessairement affectés à une agence et je voudrais continuer a voir l'ensemble des entrées de la table 'T_Personne'.
Voici la requête (simplifiée) :
SELECT Nom_personne, Prenom_personne, Nom_Agence FROM T_Personne AS TP LEFT JOIN T_AffPersonnes AS TAF ON TP.Num_Personne=TAF.Num_Personne LEFT JOIN T_Agence AS TA ON TAF.Num_Agence=TA.Num_Agence WHERE TAF.Supprimer=0 ORDER BY Nom_personne, Prenom_personne, Nom_Agence
J'espère que vous saurez me venir en aide...
Merci d'avance !
Partager