Trong MySQL, viết JOIN
không đủ tiêu chuẩn ngụ ý INNER JOIN
. Nói cách khác, INNER
trong INNER JOIN
Là tùy chọn. INNER
và CROSS
là các từ đồng nghĩa trong MySQL. Để rõ ràng, tôi viết JOIN
hoặc INNER JOIN
nếu tôi có điều kiện tham gia và CROSS JOIN
nếu tôi không có điều kiện.
Cú pháp được phép cho phép nối được mô tả trong tài liệu .
Hiệu quả là như nhau, nhưng lịch sử đằng sau chúng là khác nhau. Cú pháp dấu phẩy là từ tiêu chuẩn ANSI-89. Tuy nhiên, có một số vấn đề với cú pháp này nên trong tiêu chuẩn ANSI-92, từ khóa JOIN đã được giới thiệu.
Tôi thực sự khuyên bạn nên luôn luôn sử dụng cú pháp JOIN thay vì dấu phẩy.
-
T1 JOIN T2 ON ...
dễ đọc hơnT1, T2 WHERE ...
. - Nó dễ bảo trì hơn vì mối quan hệ bảng và bộ lọc được xác định rõ ràng thay vì trộn lẫn với nhau.
- Cú pháp JOIN dễ dàng chuyển đổi thành OUTER JOIN hơn là cú pháp dấu phẩy.
- Việc trộn lẫn cú pháp dấu phẩy và JOIN trong cùng một câu lệnh có thể gây ra các lỗi gây tò mò do các quy tắc ưu tiên.
- Ít có khả năng vô tình tạo ra một sản phẩm ca-ri khi sử dụng cú pháp JOIN do một mệnh đề nối bị quên, bởi vì các mệnh đề nối được viết bên cạnh các phép nối và bạn có thể dễ dàng biết được nếu thiếu một mệnh đề.