Sujet : [mysql]jointure Externe

J'y est passé quelques heures pour comprendre pourquoi ma requete ne fonctionnait pas alors que mon code SQL était correct !! 
Il y a une petite particularité avec MySql hmm

Code qui ne fonctionne pas :

SELECT * FROM table1 TB1
               LEFT JOIN table2 TB2
               ON TB1.id = TB2.id
WHERE TB2.col = 123;

Ce code est du SQL correct mais ne fonctionne pas car les conditions (where) sur la table 2 doivent etre mises dans la condition de jointure

SELECT * FROM table1 TB1
               LEFT JOIN table2 TB2
               ON (TB1.id = TB2.id AND TB2.col = 123);

Remarque : les conditions sur la table 1 reste dans le WHERE !!!!

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW

Re : [mysql]jointure Externe

Tout d'abord merci beaucoup pour ce post, j'étais sur le même problème est je m'arrachais un peu les cheveux.
Mais après un moment de soulagement je me suis vite renducompte que c'etait pas top !
Par définition une jointure ouverte ca prend ce qui colle ... et ce qui colle pas,
Toujours par définition les conditions de la clause where elle doivent être respectées strictement
TB1.id = TB2.id doit être souple et me ramener les lignes ou TB2.id est null
mais par contre la condition TB2.col = 123 elle est stricte et il faut vraiment ramener que les lignes qui la respecte.
Bref ca le fait toujours pas !

Re : [mysql]jointure Externe

Salut !

Donne ta requête SQL, le type de moteur (je suppose que c'est MySQL) et ce que tu veux faire. On pourra peut-être t'aider !

Bon courage,
Cyb.

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW