Предположим, у меня есть следующий запрос. Если нет совпадений при присоединении к t1 и t2, все остальные объединения игнорируются MySQL?Должны ли SQL JOINs размещаться в определенном порядке по соображениям производительности?
Причина, о которой я прошу, заключается в том, что если нет, то я разбвлю запрос и использую PHP, чтобы собрать его вместе. Если нет удара производительности, я просто поставлю свои JOINs в таком порядке, который не будет продолжаться, как только предыдущий JOIN не сделает. Спасибо
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
Для ссылки на кого-либо еще, проходящего по этой дороге, как я это сделал ... http://stackoverflow.com/questions/1018822/inner-join-on-vs-where-clause предоставляет много подробностей о различий и преимуществ. – JeopardyTempest