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
Je dispose de 3 tables avec chacune une ligne.
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
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.
Partager