Faire un count dans une rquete SQL qui porte sur une autre table

6xavier6 Messages postés 51 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 7 février 2020 - 30 oct. 2008 à 09:43
hymnuade Messages postés 39 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 15 février 2010 - 31 oct. 2008 à 20:05
Bonjour a tous

Je commence par remercier d'avance tous ceux qui tenteront de me venir en aide.

Voila mon probleme. Je cherche à afficher le resultat d'un COUNT() dans ma requete mais ce COUNT porte sur une autre table que elle en cours.

Bien sur dit comme ca cest pas tres clair, alors je vais illustrer par un petit exemple concret
(exemple :
2 tables t1 et t2
champs de t1 = c1.1, c1.2, c1.3
champs de t2 = c2.1, c2.2, c2.3)

Ce que je veut faire, a chaque c1.1, afficher le total de ligne de la table t2 qui ont c1.1 = c2.1

SELECT c1.1,
               c1.2,
               c1.3,
                [ici le resultat du count] AS "TOTAL"
FROM t1, t2
WHERE c1.1 = c2.1;

J'ai penser a faire un tuc dans le genre (qui va faie dresser les cheveux sur la tete de certain car archi faux)
SELECT c1.1,

               c1.2,

               c1.3,

               {
                  SELECT COUNT(*)
                  FROM t2
                   WHERE c2.1 = c1.1;
                }

FROM t1;

Bon je me tiens dispo bien sur pour toute clarification, demande de precision ou autre.
Merci encore pour le temps que certain vont passer a maider

6xavier6

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
30 oct. 2008 à 20:22
Salut

Avec un group by ca doit suffir?

SELECT c1.1,
               c1.2,
               c1.3,
                  COUNT(*)
                 
               
FROM t1
inner join t2 on

                    c2.1 = c1.1

GROUP bY c1.1,

               c1.2,

               c1.3

Non testé
Voila
0
hymnuade Messages postés 39 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 15 février 2010
31 oct. 2008 à 20:05
SELECT c1.1,
               c1.2,
               c1.3,
                tmp.c2.1 AS TOTAL
FROM t1
INNER JOIN 
(
SELECT c2.1, COUNT(c2.1) FROM t2 GROUP BY c2.1
) tmp ON t1.c1.1 = tmp.c2.1
0
Rejoignez-nous