Bonjour,
J'ai un souci de count relativement simple mais sur lequel je bute depuis un moment sans comprendre pourquoi.
La structure des tables de ma base est la suivante :
Table A : PrimaryKeyA, Colonne_A
Table B : PrimaryKeyB, ForeignKeyA, Colonne_B
Table C : PrimaryKeyC, ForeignKeyB, Colonne_C
Table D : PrimaryKeyD, ForeignKeyA (je ne me suis pas trompé, c'est A !), Colonne_D
Chaque occurence de la table A a 0 ou n liaisons avec les éléments de B
Chaque occurence de la table B a 0 ou n liaisons avec les éléments de C
Chaque occurence de la table A a 0 ou n liaisons avec les éléments de D
Ma requête est la suivante :
Je souhaite faire comme ça car je peux avoir des filtres sur les éléments des tables B ou C et des tris sur Colonne_D et je veux pouvoir traiter filtre et tris dans une seule requête plutôt que d'avoir un tableau à filtrer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT Colonne_A, count(Colonne_D) FROM Table_A a LEFT JOIN Table_D d on a.PrimaryKeyA = d.PrimaryKeyA LEFT JOIN Table_B d on a.PrimaryKeyA = b.PrimaryKeyA LEFT JOIN Table_C d on b.PrimaryKeyB = c.PrimaryKeyB GROUP BY a.PrimaryKeyA
Ma requête est-elle correcte ? En effet, en pratique elle me renvoie - apparemment - le nombres d'élements de D x nombre d'éléments de C x nombre d'éléments de D.
Si vous avez une piste, je prends !
Merci de votre aide / conseil...
Partager