Tôi đang nghiên cứu tham gia bên trong và tôi là một người WHERE SQL-92 cũ. Tôi muốn biết những tác động và hiểu cách nó hoạt động. Vì vậy, đây chỉ là một câu hỏi lý thuyết về việc tham gia SQL. Đây có phải là ...Nested INNER JOIN vs INNER JOIN vs WHERE: chính xác, hiệu suất, rõ ràng cho một trường hợp cụ thể (không phải là một JOIN điển hình vs WHERE vấn đề)
SELECT * FROM -- Query 1
tbl1
INNER JOIN (
tbl2
INNER JOIN (
tbl3 INNER JOIN tbl4 ON tbl3.Col1 = tbl4.Col1
)
ON tbl2.col1 = tbl3.col2
)
ON tbl1.col1 = tbl3.col3
... giống như thế này?
SELECT * FROM -- Query 2
tbl3
INNER JOIN tbl4 ON tbl3.col1 = tbl4.col1
INNER JOIN tbl2 ON tbl2.col1 = tbl3.col2
INNER JOIN tbl1 ON tbl1.col1 = tbl3.col3
... hoặc điều này (không được sắp xếp theo độ phân giải logic)?
SELECT * FROM -- Query 3
tbl3
INNER JOIN tbl1 ON tbl1.col1 = tbl3.col3
INNER JOIN tbl2 ON tbl2.col1 = tbl3.col2
INNER JOIN tbl4 ON tbl3.col1 = tbl4.col1
..or này (nút tham khảo thay đổi; thấy có một bảng tham chiếu trước khi nó được trích dẫn, nhưng sản phẩm Descartes nên giống nhau)
SELECT * FROM -- Query 4
tbl4
INNER JOIN tbl1 ON tbl1.col1 = tbl3.col3
INNER JOIN tbl2 ON tbl2.col1 = tbl3.col2
INNER JOIN tbl3 ON tbl4.col1 = tbl3.col1
..or này?
SELECT * FROM -- Query 5
tbl1,tbl2,tbl3,tbl4
WHERE
tbl3.col1 = tbl4.col1
tbl2.col1 = tbl3.col2
tbl1.col1 = tbl3.col3
... từ thẩm mỹ, cú pháp, thực hành tốt nhất và quan điểm chức năng?
Đó là một câu hỏi rất cởi mở nhưng tôi nghĩ là khá thú vị cho cộng đồng để ném một số ánh sáng!