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 :

[MYSQL5] Pb de jointure de tables MyISAM


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 123
    Par défaut [MYSQL5] Pb de jointure de tables MyISAM
    Bonjour,

    J'ai une table liée virtuellement avec trois autres tables par une relation 1 vers plusieurs.

    Je cherche à récupérer les informations de ces tables

    SELECT t1.champX, t2.champY, t3.champZ FROM table1 AS t1 LEFT JOIN (table2 AS t2, table3 AS t3) ON (t2.uid=t1.uid AND t3.uid=t1.uid) WHERE conditions

    Cela fonctionne parfaitement bien lorsque chaque valeur uid de t1 existe dans t2 et t3. Mais, pour les valeurs uid de t1 qui n'existent pas dans t2 par exemple, mais qui existe bien dans t3, alors la requète renvoie null pour t2.champY (normal) mais aussi pour t3.champZ.

    Je pense que c'est ma condition ON qui ne convient pas, mais je ne vois pas quoi mettre d'autre.

    Y a t il une solution pour obtenir ce résultat en une seule requète ?

  2. #2
    Membre expérimenté
    Avatar de mathk
    Inscrit en
    Décembre 2003
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 211
    Par défaut
    essaye avec un OR (non?)

  3. #3
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    C'est peut-être ça que tu cherches à faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT t1.champX, t2.champY, t3.champZ 
     
    FROM table1 AS t1
     
    LEFT JOIN table2 AS t2
    ON t2.uid=t1.uid
     
    LEFT JOIN table3 AS t3
    ON t3.uid=t1.uid
     
    WHERE conditions
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 123
    Par défaut Merci BEAUCOUP
    Superbe !


    C'est effectivement ce que je vouslais faire, mais je commettais l'erreur de répéter la table à utiliser en tant que partie gauche (FROM table 1 AS t1 LEFT JOIN ..... , table 1 LEFT JOIN ..... WHERE .....) et bien sûr j'obtenais une jolie erreur de syntaxe !

    Quand je vois la simplicité de la solution, j'ai envie de me donner un baffe !

  5. #5
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut Re: Merci BEAUCOUP
    Citation Envoyé par frochard
    Quand je vois la simplicité de la solution, j'ai envie de me donner un baffe !
    Mais non, mais non, il faut pas ! Ca arrive à tout le monde ce genre d'erreurs... (la fatigue, les copier/coller, etc)

    Pour t'en convaincre, va voir ici: Taverne/Vos plus belles lose
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

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

Discussions similaires

  1. Jointure de table avec Interbase
    Par ada_b dans le forum InterBase
    Réponses: 21
    Dernier message: 12/05/2010, 19h52
  2. Jointure table MyISAM <-> table InnoDB
    Par langevert dans le forum Débuter
    Réponses: 3
    Dernier message: 24/11/2008, 14h36
  3. [FB1.5]Vue avec jointure sur tables ?
    Par Sitting Bull dans le forum SQL
    Réponses: 2
    Dernier message: 07/12/2004, 17h07
  4. jointure sur table et procedure stocké
    Par pram dans le forum SQL
    Réponses: 3
    Dernier message: 18/11/2004, 21h56
  5. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 17h50

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