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 :

outer join ou left join


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 29
    Points
    29
    Par défaut outer join ou left join
    Bonjour, voici le contexte.
    table résultat, local.ya_xselres, contient les codes des membres sélectionnés
    table maitre, ma, contient les infos des membres
    table cotisation, mb, contient les cotisations payées par les membres

    Alors à partir de la table résultat, je veux avoir les infos du membre et les paiements.
    Si un membre a 3 paiements, il y aura 3 lignes pour lui, c'est correct.
    J'ai essayé cela, entre autres mais MySql n'aime pas.
    "Erreur 42S02 Table local.mb n'existe pas"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select * 
    from cumul.fmr1ma ma, gest2009.fmr1mab mb
    left join mb on ma.perma = mb.perma
    where ma.perma in (Select perma from local.ya_xselres)
    order by ma.perma, mb.period
    Qu'est-ce qui manque ?

    yves

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 223
    Points : 28 213
    Points
    28 213
    Par défaut
    Qu'est-ce qui manque ?
    C'est dit dans le message d'erreur :
    Table local.mb n'existe pas
    Alors pour commencer abandonne cette habitude de faire des jointures implicites FROM cumul.fmr1ma ma, gest2009.fmr1mab mb. Je sais que toutes les écoles enseignent comme ça, c'est probablement parce que les prof n'ont jamais eu à debugger des grosses requêtes SQL

    Une jointure se fait explicitement avec le mot clé JOIN et ses qualificatifs LEFT, RIGHT, etc ...

    Et en plus tu mélanges n'importe comment jointure implicite et explicite

    Donc on reprend :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * 
    FROM cumul.fmr1ma ma 
    LEFT JOIN gest2009.fmr1mab mb ON ma.perma = mb.perma
    WHERE ma.perma IN (SELECT perma FROM LOCAL.ya_xselres)
    ORDER BY ma.perma, mb.period

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

Discussions similaires

  1. LEFT JOIN ou RIGHT JOIN : Interchangeables ?
    Par WinNew dans le forum Langage SQL
    Réponses: 21
    Dernier message: 02/04/2012, 16h22
  2. Plusieurs left join ou right join
    Par devman2011 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/03/2012, 07h59
  3. left join et right join
    Par huître dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 13/10/2011, 21h25
  4. LEFT OUTER JOIN et LEFT JOIN
    Par polace dans le forum MySQL
    Réponses: 3
    Dernier message: 19/11/2008, 15h24
  5. LEFT JOIN ou LEFT OUTER JOIN
    Par maysa dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2007, 10h20

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