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 đề.