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 :

Problem LEFT join


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut Problem LEFT join
    Bonjour à tous, amis programmeurs.

    Voila, j'ai un soucis et j'espère que vous allez pouvoir m'aider.

    Dans un premier temps, j'ai trois tables:
    _________________
    TABLES:
    • tbl_articles
    • tbl_categories
    • tbl_sous_categories

    _________________

    Dans la première table il y a quatre champs:
    _________________
    CHAMPS:
    • id_article
    • cat1
    • cat2
    • sous_cat

    _________________

    ex:
    1---2---3---1
    2---1---2---3
    3---1---1---3

    Dans la deuxième il y a 2 champs:
    _________________
    CHAMPS:
    • id_cat
    • nom_cat

    _________________

    ex:
    1---voiture
    2---moto
    3---velo

    Et dans la troisième aussi:
    _________________
    CHAMPS:
    • id_sous_cat
    • nom_sous_cat

    _________________

    ex:
    1---diesel
    2---essence
    3---gaz

    Voici ma requête SQL qui pose problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT 
    tbl_articles.id_article,
    tbl_categories.nom_cat,
    cat2.nom_cat as nom_cat2,
    tbl_sous_categories.nom_sous_cat
    FROM tbl_articles
    LEFT JOIN tbl_categories ON tbl_articles.id_article = tbl_categories.id_cat 
    LEFT JOIN tbl_categories as cat2 ON tbl_articles.id_article = tbl_categories.id_cat  
    LEFT JOIN tbl_sous_categories ON tbl_articles.id_article = tbl_sous_categories.id_sous_cat   
    WHERE id=1
    Cette requête fonctionne et m'affiche dans le cas présent:
    1---auto---NULL---diesel

    Mon soucis c'et le "NULL" qui apparait au lieu de m'afficher:
    1---auto---velo---diesel

    Il s'agit donc d'afficher un accessoire (article) qui soit compatible avec la catégorie auto et categorie2 vélo et pour sous catégorie diesel

    Voila, je ne sais pas si je me suis bien fait comprendre. Merci d'avance pour votre aide.

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

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

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    Elle est bizarre, cette requête .
    Pourquoi faire, dans les jointures vers les tables de catégories (ou même sous-catégorie), une jointure selon l'id de l'article, et pas la valeur des catégories (ou sous-catégorie) de la table article ?
    En clair, est-ce qu'il ne faudrait pas plutôt faire la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT tbl_articles.id_article, tbl_categories.nom_cat, cat2.nom_cat AS nom_cat2, tbl_sous_categories.nom_sous_cat
    FROM tbl_articles
    LEFT JOIN tbl_categories ON tbl_articles.cat1 = tbl_categories.id_cat 
    LEFT JOIN tbl_categories AS cat2 ON tbl_articles.cat2 = tbl_categories.id_cat  
    LEFT JOIN tbl_sous_categories ON tbl_articles.sous_cat = tbl_sous_categories.id_sous_cat   
    WHERE id=1
    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
    Profil pro
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut
    Heu oui effectivement, je me suis brouté dans ma SQL exposée.
    J'ai évidement mis la relation comme tu l'as mentionné. Cela dit, même avec ta proposition, j'ai une valeur "NULL" au lieu des données qui apparait.

    Merci de ton aide en tout cas...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut
    Bon j'ai trouvé et c'était tout con:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT tbl_articles.id_article, tbl_categories.nom_cat, cat2.nom_cat AS nom_cat2, tbl_sous_categories.nom_sous_cat
    FROM tbl_articles
    LEFT JOIN tbl_categories ON tbl_articles.cat1 = tbl_categories.id_cat 
    LEFT JOIN tbl_categories AS cat2 ON tbl_articles.cat2 = cat2.id_cat  
    LEFT JOIN tbl_sous_categories ON tbl_articles.sous_cat = tbl_sous_categories.id_sous_cat   
    WHERE id=1

    Il fallait passer
    LEFT JOIN tbl_categories AS cat2 ON tbl_articles.cat2 = tbl_categories.id_cat
    en
    LEFT JOIN tbl_categories AS cat2 ON tbl_articles.cat2 = cat2.id_cat

    Merci de ton aide

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

Discussions similaires

  1. Probleme LEFT JOIN SQL server avec vb .Net
    Par pilou812 dans le forum VB.NET
    Réponses: 6
    Dernier message: 28/12/2007, 10h40
  2. Oracle 8i Syntaxe : Probleme de LEFT JOIN
    Par KaryBoo dans le forum Oracle
    Réponses: 3
    Dernier message: 18/10/2006, 14h12
  3. probleme avec LEFT JOIN multi tables
    Par hinsano dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/07/2006, 06h36
  4. Réponses: 8
    Dernier message: 11/05/2006, 23h18
  5. [MySQL]probleme LEFT JOIN Mysql
    Par tatayoyo dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/08/2005, 20h47

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