Nehmen wir an, ich habe die folgende Abfrage. Wenn beim Verbinden von t1 und t2 keine Übereinstimmungen vorhanden sind, werden alle anderen Verknüpfungen von MySQL ignoriert?Sollen SQL-JOINs aus Performance-Gründen in eine bestimmte Reihenfolge gebracht werden?
Grund Ich frage ist, dass wenn nicht, dann werde ich die Abfrage aufbrechen und PHP verwenden, um es zusammenzufügen. Wenn es keinen Performance-Hit gibt, werde ich meine JOINs einfach in eine Reihenfolge bringen, die nicht weitergeht, wenn ein vorhergehender JOIN nicht gemacht wird. Danke
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
Für einen Hinweis auf jemand anderen über die Straße wie ich ... http://stackoverflow.com/questions/1018822/inner-join-on-vs-where-clause bietet eine Menge Details auf der Unterschiede und Vorteile. – JeopardyTempest