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

Langage SQL Discussion :

[MySQL] INNER & OUTER JOIN imbriqués avec WHERE


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Février 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 1
    Par défaut [MySQL] INNER & OUTER JOIN imbriqués avec WHERE
    Bonjour

    J'ai deux requêtes différentes (l'une a un INNER JOIN, l'autre un LEFT OUTER JOIN) qui renvoient le même résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM PROJECTS
        LEFT OUTER JOIN (STUDIES
            LEFT OUTER JOIN (STATUS) ON STATUS.STATUS_ID = STUDIES.STATUS_ID AND STATUS.NAME = 'Open'
    ) ON STUDIES.PROJECT_ID = PROJECTS.PROJECT_ID
    &

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM PROJECTS
        LEFT OUTER JOIN (STUDIES
            INNER JOIN (STATUS) ON STATUS.STATUS_ID = STUDIES.STATUS_ID AND STATUS.NAME = 'Open'
    ) ON STUDIES.PROJECT_ID = PROJECTS.PROJECT_ID
    Je dispose de 3 tables avec chacune une ligne.
    Les données sont "liées" correctement.
    Dans la table STATUS: NAME='close'

    La première requête fait ce que j'attends d'elle, c'est à dire retourne les informations relatives a project et study. Celles relatives à status son null car elles ne correspondent pas.

    La deuxième fait exactement la même chose ; cependant, j'ai mis un INNER JOIN entre STATUS et STUDIES, par conséquence j'attends en résultat aucune study (sachant qu'il n'y a pas de status correspondant), mais simplement les données de la table PROJECT.

    Visiblement j'ai fait une erreur, mais je ne vois pas où.

    Merci par avance pour toute aide :-)

    remarque: je travaille avec mysql.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    peut tu poster un jeu de données et la réponse en te conformant à ceci :
    http://www.developpez.net/forums/viewtopic.php?t=32668

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [Criteria] outer join criteria avec sous requete
    Par ikane dans le forum Hibernate
    Réponses: 0
    Dernier message: 24/03/2014, 12h00
  2. left outer join avec where
    Par Lafleur2012 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 14/02/2014, 16h33
  3. [MySQL] Erreur mysql type 0, 0, 0, 0) avec requête JOIN <-> ON + AND + AND -> WHERE
    Par gailup dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 07/08/2008, 22h36
  4. INNER JOIN incompatible avec Mysql 5
    Par jpeg1st dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/02/2007, 12h21
  5. Problème de jointure avec INNER JOIN et LEFT OUTER JOIN
    Par tonio-lille dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/02/2006, 12h45

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