IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

COUNT/JOIN sur deux tables


Sujet :

Langage SQL

  1. #1
    Membre averti
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Points : 334
    Points
    334
    Par défaut COUNT/JOIN sur deux tables
    J'imagine que certains vont n'en faire qu'une bouchée mais je débute encore en SQL donc personnellement je galère un peu.
    J'ai 3 tables A, B et C avec un one-to-many de A vers B, et un autre de A vers C.
    Dans un premier temps, j'ai cherché à récupérer tous les records de A et à leur ajouter le nombre de records correspondants dans B:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT a.*,COUNT(b.id) AS nb1 
    FROM A a LEFT OUTER JOIN B b ON a.id=b.id_a
    GROUP BY b.id_a
    Je ne sais pas si c'est l'idéal mais en tout cas ça fonctionne. Maintenant je cherche à compléter cette requête pour ajouter le COUNT/JOIN sur A par rapport à C.
    Est-ce que je peux tout faire en une requête ou est-ce qu'il faut forcément que je fasse une autre requête?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Salut,

    Tu peux essayer avec une requête de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT a.*,count_b, count_c 
    FROM A a
    left outer join
    (SELECT a.id as id, count(b.id) as count_b FROM A a INNER JOIN B b ON a.id=b.id_a GROUP BY a.id) b
    ON a.id=b.id
    left outer join
    (SELECT a.id as id, count(c.id) as count_c FROM A a INNER JOIN B b ON a.id=c.id_a GROUP BY a.id) c
    ON a.id=c.id

  3. #3
    Membre averti
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Points : 334
    Points
    334
    Par défaut
    Merci beaucoup, ça marche nickel!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. left join sur deux tables !
    Par cLaSic dans le forum Requêtes
    Réponses: 6
    Dernier message: 16/04/2009, 09h57
  2. requete sur deux tables avec join et coalesce
    Par nifufu dans le forum Requêtes
    Réponses: 14
    Dernier message: 10/02/2009, 13h51
  3. deux inner join sur une table
    Par the-player777 dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/11/2007, 09h43
  4. requête count sur deux tables
    Par psychoBob dans le forum Requêtes
    Réponses: 7
    Dernier message: 13/06/2006, 15h12
  5. 2 Count() sur deux tables en jointures gauches
    Par Alexandre T dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2003, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo