L'exigence :
je veux que toutes les tables
de la personne apparaissent
La condition dans la requête :
AND partie.membre = '100'
Il vaudrait mieux tester les personnes des tables non ?
Maintenant quelques petites choses sur cette requête...
1) Appeler une colonne 'TABLE' ou 'DATE' est une mauvaise idée car ce sont des mots réservés du langage SQL.
2) Préférer le nommage des colonnes dans le GROUP BY plutôt que le numérotage. Si vous changez l'ordre des colonnes dans la requêtes, vous n'aurez plus le même résultat en les numérotant. Même si dans ce cas précis il n'y a pas d'ambiguïté.
3) Les valeurs numériques s'écrivent sans apostrophes.
La requête à essayer :
1 2 3 4 5 6 7
| SELECT t.titre AS cle, COUNT(c.id) AS valeur
FROM TABLE as t
LEFT OUTER JOIN PARTIE AS p ON p.TABLE = t.ID
AND YEAR(p.DATE) = 2010
LEFT OUTER JOIN CARTE as C ON c.PARTIE = p.ID
WHERE t.PERSONNE = 100
GROUP BY t.titre |
J'y ai mis des alias pour alléger la lecture de la requête.
Si on met la condition sur l'année dans le WHERE, on casse le LEFT JOIN.
Partager