Obtenir un COUNT() = 0 lors d'une jointure ?
Bonjour,
Un petit dessin vaut mieux qu'un long discours...
J'ai deux tables liées :
Code:
1 2 3 4 5 6 7 8 9
| [users]
[id_user] NOT NULL PRIMARY KEY
[id_avatar] FOREIGN KEY
[nom]
[avatars]
[id_avatar] NOT NULL PRIMARY KEY
[url] NOT NULL
[description] |
Avec pour le contenu :
Code:
1 2 3 4 5 6 7 8 9 10 11
| [users]
1, 1, "Alice"
2, 2, "Bob"
3, 1, "Charlie"
4, 4, "Diane"
[avatars]
1, "/quiet.gif", "Je suis calme"
2, "/sad.gif" , "Je suis triste"
3, "/angry.gif", "Je suis en colère"
4, "/happy.gif", "Je suis heureux" |
Je souhaite obtenir en sortie :
Code:
1 2 3 4
| 2, "Je suis calme"
1, "Je suis triste"
0, "Je suis en colère"
1, "Je suis heureux" |
Comme première étape, j'arrive à obtenir
Code:
1 2 3 4 5
| "Alice" , "Je suis calme"
"Bob" , "Je suis triste"
"Charlie", "Je suis calme"
"Diane" , "Je suis heureux"
NULL , "Je suis en colère" |
Avec la requête :
Code:
1 2
| SELECT [users].[nom], [avatars].[description]
FROM [users] RIGHT JOIN [avatars] ON [users].[id_avatar]=[avatars].[id_avatar] |
En revanche, dès que je place mon COUNT(), j'ai le choix entre
Code:
1 2 3
| 2, "Je suis calme"
1, "Je suis triste"
1, "Je suis heureux" |
ou
Code:
1 2 3 4
| 2, "Je suis calme"
1, "Je suis triste"
1, "Je suis en colère" --le 1 est compté pour l'entrée NULL
1, "Je suis heureux" |
Y a-t-il une solution à ce problème ?
D'avance merci !