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
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.