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

Requêtes MySQL Discussion :

Quelle requête SQL pour obtenir mon résultat ?


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Avatar de nicolas.pied
    Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Janvier 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'Etudes

    Informations forums :
    Inscription : Janvier 2005
    Messages : 249
    Points : 235
    Points
    235
    Par défaut Quelle requête SQL pour obtenir mon résultat ?
    Bonjour,

    J'ai la table suivante Company :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Id INT Clé
    Name VARCHAR
     
    Exemple :
    1 | Société_1
    2 | Société_2
    et la table Contact :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Id INT Clé
    Name VARCHAR
    IdCompany INT
     
    Exemple :
    1 | Contact _1 | 2
    Le champ IdCompany de la table Contact fait donc référence au champ Id de la table Company. Je souhaiterais obtenir un affichage comme ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     -----------------------------
    | Name       | Nb of Contacts |
     -----------------------------
    | Société_1 |           0     |
    | Société_2 |           1     |
     -----------------------------
    Comme vous pouvez le voir, il peut y avoir des entreprises n'ayant pas de contact (d'où mon problème, car sinon un GROUP BY suffit). Avez-vous une idée au niveau de la requête SQL à spécifier pour obtenir un résultat comme ci-dessus ?

    Merci !

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 741
    Points
    11 741
    Par défaut
    un Group By suffit... avec un jointure externe !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select Cy.Name, COUNT(Con.ID)
    FROM company Cy
      LEFT JOIN contact Con
        ON Cy.ID = Con.ID_company
    GROUP BY Cy.Name

  3. #3
    Membre actif
    Avatar de nicolas.pied
    Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Janvier 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'Etudes

    Informations forums :
    Inscription : Janvier 2005
    Messages : 249
    Points : 235
    Points
    235
    Par défaut
    Merci bien, j'avais mal structuré mon LEFT JOIN

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

Discussions similaires

  1. [AC-2007] Problématique quelle requete faire pour obtenir mon résultat
    Par giulian12 dans le forum Requêtes et SQL.
    Réponses: 31
    Dernier message: 15/05/2015, 12h02
  2. Requête SQL pour associer 2 résultats
    Par bigtitou dans le forum Langage SQL
    Réponses: 5
    Dernier message: 27/08/2012, 13h29
  3. [MySQL] Quelle syntaxe utiliser pour tester le résultat SQL ?
    Par ctrl+z dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/12/2008, 16h11
  4. Requête SQL pour obtenir les intitulés des champs d'une table
    Par Zakapatul dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/12/2008, 09h51

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