Disons que j'ai la requête suivante. S'il n'y a pas de correspondance lors de la connexion de t1 et t2, toutes les autres jointures sont-elles ignorées par MySQL?Les SQL JOIN doivent-ils être placés dans un ordre particulier pour des raisons de performances?
Raison que je demande est que sinon, alors je vais rompre la requête et utiliser PHP pour le rassembler. S'il n'y a pas de hit de performance, alors je vais juste mettre mes JOINs dans un tel ordre qui ne continue pas une fois qu'un JOIN précédent ne le fait pas. Merci
SELECT whatever
FROM t1
INNER JOIN t2 ON t2.t1id=t1.id
INNER JOIN t3 ON t3.t2id=t2.id
INNER JOIN t4 ON t4.t3id=t3.id
INNER JOIN t5 ON t5.t4id=t4.id
INNER JOIN t6 ON t6.t5id=t5.id
INNER JOIN t7 ON t7.t6id=t6.id
INNER JOIN t8 ON t8.t7id=t7.id
INNER JOIN t9 ON t9.t8id=t8.id
WHERE t1.c=123 AND t4.c=321 AND t6.c=222 AND t9.c=222
Pour référence à quelqu'un d'autre à venir à travers cela comme je l'ai fait ... http://stackoverflow.com/questions/1018822/inner-join-on-vs-where-clause fournit beaucoup de détails sur le différences et avantages. – JeopardyTempest