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 :

Jointure retourne 0 si donnée existe pas.


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut Jointure retourne 0 si donnée existe pas.
    Bonjour

    Je vais faire simple j'ai 2 tables dont la deuxieme possede un champ correspondan a l'id (la clé) de l'autre table.

    Je fais donc une jointure

    SELECT t2.sum(nbjour),t1.nom FROM table1 t1, table2 t2 WHERE t1.id=t2.id_t1 GROUP BY t1.id

    Hors mon soucis c'est que les id de t1 n'ayant pas de relation dans t2 n'apparaisse pas, moi je voudrais que la somme renvoyé soit egale a 0 quand t1 n'a pas de relation dans t2

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Points : 562
    Points
    562
    Par défaut
    Pour cela, il faut faire une jointure externe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT t2.sum(nbjour),t1.nom
    FROM table1 t1
        LEFT OUTER JOIN table2 t2 ON t1.id=t2.id_t1
    GROUP BY t1.id
    Cette requête sélectionnera tous les enregistrements de t1 et seulement ceux de t2 pour lesquels la condition (t1.id=t2.id_t1) est vérifiée.
    Si pour un enregistrement de t1, aucun enregistrement de t2 ne correspondant, alors dans la ligne de résultats, les champs de t2 prendront la valeurs NULL.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    Merci bien ca m'a aidé mais j'ai fas ca avec un left join

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Points : 562
    Points
    562
    Par défaut
    Oui, LEFT JOIN est équivalent à LEFT OUTER JOIN.
    En fait, la syntaxe est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LEFT [OUTER] JOIN `table` ON condition
    Le OUTER est optionnel.

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

Discussions similaires

  1. recherche liste de données existant pas en base
    Par battl14 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/05/2009, 20h04
  2. Réponses: 3
    Dernier message: 07/01/2009, 20h03
  3. Réponses: 4
    Dernier message: 08/09/2008, 12h06
  4. Insérer une donnée si elle n'existe pas.
    Par ShortcutZ dans le forum Langage SQL
    Réponses: 6
    Dernier message: 26/03/2008, 17h07
  5. Afficher une liste qui n'existe pas dans la base de données.
    Par Zvetch dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 25/09/2007, 14h23

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