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 avec Foreign Key pouvant être null


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Jointure avec Foreign Key pouvant être null
    Bonjour,

    J'ai un soucis avec une requête SQL.

    J'ai deux table:

    Table Bleu:
    id_bleu NOT NULL
    nom_bleu NOT NULL
    Table rouge:
    id_rouge NOT NULL
    nom_rouge NOT NULL
    bleu1_id NULL
    bleu2_id NULL

    Je voudrais faire une requête du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT r.nom_rouge, b1.nom_bleu, b2.nom_bleu
    FROM rouge r, bleu b1, bleu b2
    WHERE r.bleu1_id = b1.id_bleu
    AND r.bleu2_id = b2.id_bleu

    Actuellement, quand je fais cette requête, ça me retourne uniquement les lignes ayant un bleu1_id et bleu2_id NOT NULL.

    Comment puis-je faire pour obtenir toutes les lignes, c'est-à-dire même lorsque les champs bleu1_id et bleu2_id sont NULL ?


    Merci

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 014
    Points : 23 702
    Points
    23 702
    Par défaut
    Bonjour,

    Depuis 1992, les jointures s'écrivent avec l'opérateur JOIN...
    Ce qui permet, entre autres, de faire des jointures externes (LEFT JOIN, RIGHT JOIN), ce qui devrait vous aider à résoudre votre problème.
    Un peu de lecture pour y parvenir : les jointures SQL.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Points : 305
    Points
    305
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT r.nom_rouge, b1.nom_bleu
    FROM rouge r join bleu b1 on r.bleu1_id = b1.id_bleu
    join bleu b2 on r.bleu2_id = b2.id_bleu
    Accepter les critiques, c'est le premier pas pour être un bon développeur ...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par ced Voir le message
    Bonjour,

    Depuis 1992, les jointures s'écrivent avec l'opérateur JOIN...
    Ce qui permet, entre autres, de faire des jointures externes (LEFT JOIN, RIGHT JOIN), ce qui devrait vous aider à résoudre votre problème.
    Un peu de lecture pour y parvenir : les jointures SQL.

    ced
    D'accord, donc le type de jointure que j'essayais n'est plus aux normes actuelles ?

  5. #5
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 014
    Points : 23 702
    Points
    23 702
    Par défaut
    Non, ce n'est pas ça.
    La façon dont tu as écris ta requête (avec les tables séparées par des virgules), n'est plus dans les normes actuelles.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

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

Discussions similaires

  1. Création d'une table avec foreign key.
    Par Paulinho dans le forum Débuter
    Réponses: 6
    Dernier message: 01/12/2005, 18h47
  2. [mysql]table avec foreign key
    Par samjung dans le forum Langage SQL
    Réponses: 24
    Dernier message: 24/11/2005, 14h42
  3. Problème avec foreign key
    Par bubi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/11/2005, 16h03
  4. problème avec Foreign Key [Interbase 7.5] [Delphi 2005]
    Par xenos dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/09/2005, 11h21
  5. Création d'une table avec foreign key
    Par lepierre dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/09/2004, 14h20

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