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 :

Probleme jointure avec champs vides


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut Probleme jointure avec champs vides
    Bonjour,

    Je suis en train d'essayer de faire une requete faisant appel à plusieurs tables, j'utilise INNER JOIN, mais le résultat que j'obtiens n'est pas celui attendu. En fait, il me manque les résultats dont certains champs sont vides, alors que je veux les afficher quand même !

    Voici le code de ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT test.valeur3, test2.cle, xlibell.libelle, martdom.code_appel, djointe.nom_fichier, djointe.extension
    FROM test 
    INNER JOIN test2 ON test2.cle = test.valeur3
    INNER JOIN martdom ON martdom.cle_m_artdom = CONCAT('6 V ',test2.cle)
    INNER JOIN xlibell ON xlibell.cle_d_libell = test2.designation
    INNER JOIN xtexte ON xtexte.cle_fichier = test2.cle
    INNER JOIN djointe ON djointe.cle_d_texte = xtexte.cle_d_texte
    WHERE test.societe = 6 AND test.cle_d_libell = 106356
    ORDER BY test.date2 ASC");
    J'ai bien essayé de mettre LEFT JOIN ou RIGHT JOIN ou même CROSS JOIN quand le champ pourrait être vide, mais rien n'y fait, il me manque toujours des enregistrements !

    Comment je dois modifier ma requete pour que le resultat tienne compte même des champs qui pourraient être vides ?

    Merci d'avance pour votre aide !

  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 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

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

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

    Il faut effectivement faire des jointures externes (LEFT JOIN...).
    Il faudrait que tu nous donnes plus de détail sur ce qui te pose problème, avec quelques exemples de ce que donne ta requête et de ce que tu attends en réalité. Parce qu'à partir de la requête que tu donnes, on ne peut pas t'aider, vu le nombre de tables et de jointures en jeu, sans plus d'info : quels champs manquent...

    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 du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 51
    Points
    51
    Par défaut
    Bonsoir,

    D'abord merci pour ta réponse !

    En fait, je fais une requete qui fait appel à plusieurs table simultanement pour récuperer des informations concernant un produit (ref, nom, photo,....).

    J'arrive à construire la requete, mais le probleme est que si, par exemple le champ photo n'est pas rempli, et bien le résultat ne contiendra pas ce produit. Alors que moi, je veux afficher tout les produits avec ou sans photo.

    Ex:
    Ce que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Ref1 Nom1 Description1 photo1
    Ref2 Nom2 Description2 photo2
    Ref3 Nom3 Description3 photo3
    Ref5 Nom5 Description5 photo5
    Ce que je voudrais obtenir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Ref1 Nom1 Description1 photo1
    Ref2 Nom2 Description2 photo2
    Ref3 Nom3 Description3 photo3
    Ref4 Nom4 Description4
    Ref5 Nom5 Description5 photo5
    Pourtant LEFT JOIN devrait me permettre de faire cela, mais ça ne veut pas !
    J'espere que je suis plus clair maintenant !
    Merci encore !

  4. #4
    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 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 031
    Points : 23 763
    Points
    23 763
    Par défaut
    A part le fait que je ne vois toujours pas le lien avec la première requête que tu donnes...
    Peux-tu nous donner le nom des tables, les liens entre tables (clefs étrangères), et les champs que tu veux afficher ?
    Il faut faire autant de jointures à gauche (LEFT JOIN) que nécessaire pour toutes les tables qui "dérivent" de la table contenant les photos. Je ne suis pas bien clair, mais avec la structure de tes tables, ça sera sûrement plus concret .

    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

Discussions similaires

  1. Je sèche: jointure avec champ vide
    Par xdeslandes dans le forum Requêtes
    Réponses: 4
    Dernier message: 07/10/2013, 17h34
  2. [Toutes versions] Requête avec jointure et champ vide
    Par Mercusio dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 13/06/2013, 09h36
  3. [FLASH MX] Probleme scrollpane avec clip vide
    Par latour500 dans le forum Flash
    Réponses: 4
    Dernier message: 16/04/2005, 11h22
  4. [stringtokenizer] probleme avec champs vides
    Par gege2mars dans le forum Langage
    Réponses: 9
    Dernier message: 30/06/2004, 08h25
  5. Pb de tri avec champs vide
    Par nesbla dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2004, 17h42

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