Giả sử tôi có truy vấn sau đây. Nếu không có kết quả phù hợp khi tham gia t1 và t2, tất cả các kết nối khác đều bị bỏ qua bởi MySQL?SQL JOIN có nên được đặt theo thứ tự cụ thể vì lý do hiệu suất không?
Lý do tôi hỏi là nếu không, sau đó tôi sẽ chia nhỏ truy vấn và sử dụng PHP để ghép nó lại với nhau. Nếu không có hit hiệu suất, sau đó tôi sẽ chỉ đặt JOIN của tôi theo thứ tự như vậy mà không tiếp tục một lần JOIN trước đó không thực hiện. Cảm ơn
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
Để tham chiếu đến bất kỳ ai khác trên toàn bộ con đường này như tôi đã làm ... http://stackoverflow.com/questions/1018822/inner-join-on-vs-where-clause cung cấp rất nhiều chi tiết về sự khác biệt và lợi ích. – JeopardyTempest