Re: Problème sur un count
Essaye ça:
Code:
1 2 3 4 5 6 7
| SELECT A.*
FROM essai A
LEFT OUTER JOIN essai B ON (A.id<B.id)
GROUP BY A.id
HAVING COUNT(B.id)<3 AND A.sexe='M' |
Re: Problème sur un count
Citation:
Envoyé par pcaboche
Essaye ça:
Code:
1 2 3 4 5 6 7
| SELECT A.*
FROM essai A
LEFT OUTER JOIN essai B ON (A.id<B.id)
GROUP BY A.id
HAVING COUNT(B.id)<3 AND A.sexe='M' |
Merci, c'est exactement ça, je vais maintenant essayer de bien comprendre cette requete que j'ignorais !!!
Re: Problème sur un count
J'admets que ce n'est pas une requête évidente à comprendre pour les débutants. Elle fait intervenir les notions suivantes :
- jointures réflexives (d'où l'usage d'alias de tables A et B)
- jointure ouverte (LEFT OUTER JOIN)
- non-equijointure (opérateur < dans condition de jointure)
- GROUP BY et fonction d'aggrégation COUNT
- clause HAVING (important comprendre la différence entre HAVING et WHERE)
Tu trouveras des renseignements sur ces notions dans cet article par SQLPro :
http://sqlpro.developpez.com/cours/sqlaz/jointures/