Bonjour,
Je cherche à récupérer la liste de tous les éléments de ma table A, tout en sachant combien ils ont de relation avec la table B et la table C.
Pour récupérer tous les éléments de ma table A :
Pour récupérer tous les éléments de ma table A en comptant les relations avec la table B
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM tableA
Jusque là, je pense que vous êtes d'accord. Maintenant, je veux également savoir combien de relation avec ma table C. Mais attention, je veux toujours 1 seul TUPLE par ligne de ma table A.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SELECT ta.champ1, ta.champ2, count(1) as 'nbTableB' FROM tableA ta LEFT JOIN tableB tb ON tb.champ1 = ta.champ1 GROUP BY ta.champ1
J'ai donc fais une sous requête :
Mon problème, c'est que je dois faire ça pour 4 tables et j'ai une 10ène de champs à passer. Cette solution vous parait-elle bonne ? Auriez-vous une meilleur solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 SELECT TAB.champ1, TAB.champ2, TAB.nbTableB, count(1) as 'nbTableC', FROM ( SELECT TA.champ1, TA.champ2, count(1) as 'nbTableB' FROM tableA TA LEFT JOIN tableB TB ON TB.champ1 = TA.champ1 GROUP BY TA.champ1 ) as TAB LEFT JOIN tableC TC ON TC.champ1 = TAB.champ1
Si vous auriez également fait comme ça, n'hésitez pas à me le dire. Merci![]()
Partager