Đúng là cả hai dạng cú pháp sẽ cho cùng một kết quả và nội bộ MySQL thực thi chúng theo cùng một cách chính xác. Các phiên bản hiện tại của tiêu chuẩn SQL hỗ trợ cả hai dạng, mặc dù kiểu dấu phẩy chỉ được hỗ trợ vì lợi ích tương thích ngược.
Có một trường hợp khi sử dụng cú pháp kiểu dấu phẩy không thành công, nhưng thật kỳ lạ:
SELECT * FROM A, B JOIN C ON C.x = A.y;
JOIN
toán tử có mức độ ưu tiên cao hơn dấu phẩy. Vì vậy, như truy vấn ở trên đang cố gắng đánh giá C.x = A.y
nó thậm chí không biết rằng A
là một phần của truy vấn. Vì vậy, bạn gặp lỗi:
ERROR 1054 (42S22): Unknown column 'A.y' in 'on clause'
Cách khắc phục tốt nhất là sử dụng JOIN
cú pháp nhất quán thay vì trộn chúng.
Ngoài ra, bạn không thể thực hiện các phép nối bên ngoài bằng cú pháp phép nối dấu phẩy. Oracle và Sybase / Microsoft đều đã phát minh ra cú pháp độc quyền của riêng họ để xử lý các phép nối bên ngoài, nhưng cả hai đều không được các thương hiệu RDBMS khác hỗ trợ. Ngày nay, tất cả các phiên bản hiện tại của RDBMS bao gồm Oracle và Sybase / Microsoft đều hỗ trợ tiêu chuẩn JOIN
cú pháp, vì vậy không có lý do chính đáng để sử dụng các tiện ích mở rộng dành riêng cho nhà cung cấp kế thừa.