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 :

Count et tables liées ?


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut [Résolu] Count et tables liées ?
    Salut,

    Je cherche à faire un count sur 2 tables liées ainsi :

    MARQUE
    id_marque
    nom_marque

    MODELE
    id_modele
    id_marque
    nom_modele

    Dc un modèle appartient a une et une seule marque.

    Ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT mo.nom_modele,count(mo.id_modele) as nb
    FROM marque as ma, modele as mo
    WHERE ma.id_marque = mo.id_marque
    Ma requête marche pour toutes les marques qui ont un ou plusieurs modèles mais ne me retourne pas les marques n'ayant pas de modèles.
    Comment adpater ma requête pour qu'elle me retourne aussi les marques ayant aussi 0 modèle.

    Cordialement
    Seb

  2. #2
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Points : 248
    Points
    248
    Par défaut
    As tu vraiment besoin de ca ?

    Si tu cherche le nombre de modele par marque je te suggere ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ma.nom_marque, count(mo.id_modele) as nb 
    FROM marque as ma, modele as mo 
    WHERE ma.id_marque = mo.id_marque
    GROUP BY ma.id_marque
    Sinon pour avoir tout les enregistrement d'une table meme si il n'y a pas de lien avec l'autre, un LEFT JOIN ferait, je pense, l'affaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ma.nom_marque, count(mo.id_modele) as nb 
    FROM marque as ma LEFT JOIN modele as mo ON ma.id_marque = mo.id_marque
    J'ai un trou de memoire sur l'importance du group by ou pas sur celle là. Tente avec et sans.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut
    Re,

    Merci beaucoup djibxav !!!
    Je ne connaissais pas LEFT JOIN ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    La soluce : 
    SELECT ma.nom_marque, count( mo.id_modele )  AS nb
    FROM marque AS ma
    LEFT  JOIN modele AS mo ON ma.id_marque = mo.id_marque
    GROUP  BY ma.id_marque
    Encore merci
    @+
    Seb

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

Discussions similaires

  1. Tables liées / Jointures
    Par giaco dans le forum Langage SQL
    Réponses: 18
    Dernier message: 02/05/2005, 10h17
  2. Mise à jour des tables liées + TIMESTAMP
    Par Homegrown dans le forum Access
    Réponses: 11
    Dernier message: 25/04/2005, 21h52
  3. Réponses: 8
    Dernier message: 05/04/2005, 22h17
  4. Connaitre si table liée
    Par Njara dans le forum Access
    Réponses: 2
    Dernier message: 25/10/2004, 16h35
  5. [select dans case] reconnaitre un champ d une table liée
    Par the_edge dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 22/10/2004, 16h47

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