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

Outils MySQL Discussion :

Problème avec LEFT JOIN


Sujet :

Outils MySQL

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 40
    Par défaut Problème avec LEFT JOIN
    Bonjour cela fait une dizaine de jours que je cherche à résoudre ce problème.
    J'ai une requete qui ne donne plus le meme résultat depuis que je suis passé en version 5 de Mysql.
    J'ai 2 tables : "articles" & "equivalences", dans la table "equivalences" j'ai de 0 à n enregistrements pour un article de la table "articles"

    le code suivant me pose probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT t1.artno, t1.artlib, t1.tarif, TRUNCATE(t1.qtstk,0) as qtstk, 
               t2.artno    as artno2, t2.artlib as artlib2, t2.tarif as tarif2, 
               TRUNCATE(t2.qtstk,0) as qtstk2
    FROM    articles as t1
    LEFT JOIN equivalences as t3 ON (t1.stgrp=t3.stgrp and t1.stdos=
                  t3.stdos and t1.artno=t3.artno)
    LEFT JOIN articles as t2 ON (t2.stgrp=t3.stgrp and t2.stdos=t3.stdos and 
                  t2.artno=adpart)
    WHERE t1.stgrp= 1 and t1.stdos= 50 and t1.stkmag='000001' and t2.stkmag='000001'
    je n'obtiens pas les enregs null, c'est a dire ceux qui n'ont pas de correspndance dans la table "articles".
    Si je ne fais que la première jonction j'ai les enregs avec "null" quand il n'y a pas de correspondance. Mais dès que je rajoute le 2nd LEFT JOINT je n'obtient pas le résultat souhaité.J'ai fais dans PhpMyAdmin l'option EXPLAIN et je constate que l'optimiseur de requette utilise la table "articles" puis la table "equivalences" quand je n'ai qu'une jonction. Mais dans le cas des deux jonctions il utilise d'abord la table "equivalences" puis la tables ("articles" t2) et enfin la table ("articles" t1)
    Jai donc tenter de l'obliger à utiliser la table (t1 "articles") avec STRAIGHT_JOIN et en faisant toutes sortes de combinaisons sans succès toujours le meme resultat.
    Le résultat que je recherche c'est avoir tous les enregs de la table (t1 "articles") dont cetains n fois (n=nombre d'équivalences) et avoir "null" pour les champs de de t2 quand il n'y a pas d'équivalences.
    J'espère avoir été assez clair. Merci de vos suggestions.

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE ... AND (t2.stkmag='000001' OR t2.stkmag IS NULL)

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 40
    Par défaut
    merci beaucoup !!!!!!

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

Discussions similaires

  1. Problème avec LEFT JOIN
    Par devman2011 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/03/2012, 17h11
  2. Problème avec LEFT JOIN
    Par devdev dans le forum WinDev
    Réponses: 7
    Dernier message: 16/03/2010, 10h22
  3. problème avec LEFT OUTER JOIN
    Par tofque dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/03/2008, 11h57
  4. Problème avec LEFT JOIN
    Par Sorgue dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/01/2007, 18h37
  5. Problème avec left outer join
    Par jgfa9 dans le forum Requêtes
    Réponses: 1
    Dernier message: 22/08/2005, 21h07

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