Jointure SQL
Posté : 26 oct. 2005, 23:43
Je manque de pratique ces derniers temps et Je sèche sur une requêtte sql un peu complexe
J'ai deux tables:
administration_module
id
libelle
administration_droit
idMembre
idModule
Je souhaitera récuperer tous les tuples de la table module avec en regard le nombre de droit présent dans la table droit, pour le module en gros :
module 1 => 0 droits
module 2 => 1 droits
module 3 => 3 droits
etc...
La requêtte suivante :
Effectue l'opération.
Le problême c'est qu'il ne faut compter que les drois correspondants à un certains membre (donc prendre en compte dans le count que les tuples dont idMembre sont égaux à une certaine valeur.
Si j'ajoute une clause where
Il ne me renvoit que les modules pour lesquels il y a au moins un droit, je devrais récuperer tous les modules même ceux pour lequel le membres n'a aucun droit
Je sais c'est un peu flou; mais difficile d'être plus clair.
Merci d'avance
J'ai deux tables:
administration_module
id
libelle
administration_droit
idMembre
idModule
Je souhaitera récuperer tous les tuples de la table module avec en regard le nombre de droit présent dans la table droit, pour le module en gros :
module 1 => 0 droits
module 2 => 1 droits
module 3 => 3 droits
etc...
La requêtte suivante :
Code : Tout sélectionner
SELECT m.libelle, m.id, count( d.idMembre ) AS numMembre
FROM administration_module m
LEFT JOIN administration_droit d ON m.id = d.idModule
GROUP BY m.id
Le problême c'est qu'il ne faut compter que les drois correspondants à un certains membre (donc prendre en compte dans le count que les tuples dont idMembre sont égaux à une certaine valeur.
Si j'ajoute une clause where
Code : Tout sélectionner
SELECT m.libelle, m.id, count( d.idMembre ) AS numMembre
FROM administration_module m
LEFT JOIN administration_droit d ON m.id = d.idModule
where d.idMemnre = 7
GROUP BY m.id
Je sais c'est un peu flou; mais difficile d'être plus clair.
Merci d'avance