La spécification SQL indique que les jointures explicites sont effectuées avant les jointures implicites. Ceci est une jointure implicite :
FROM table1 t1, table2 t2 WHERE t1.id=t2.t1id
Ceci est une jointure explicite :
FROM table1 t1 JOIN table2 t2 ON (t1.id=t2.t1id)
Ce bit de code :
categories c
LEFT JOIN photos p
ON p.referencekey = i.key
est une jointure explicite et est exécutée en premier. Notez qu'à ce stade, la table aliasée comme i n'a pas encore été examinée, elle ne peut donc pas encore être jointe. Notez que MySQL a corrigé ce comportement dans la version 5.2, je crois, et cette requête ne fonctionnera plus là-bas non plus.