Ngoài cú pháp, đối với đoạn mã nhỏ, chúng hoạt động hoàn toàn giống nhau. Nhưng nếu có thể, hãy luôn viết các truy vấn mới bằng ANSI-JOINs.
Về mặt ngữ nghĩa, ký hiệu dấu phẩy được sử dụng để tạo ra sản phẩm CARTESIAN giữa hai bảng, có nghĩa là tạo ra một ma trận của tất cả các bản ghi từ bảng A với tất cả các bản ghi từ bảng B, do đó hai bảng có 4 và 6 bản ghi tương ứng tạo ra 24 bản ghi. Sử dụng mệnh đề WHERE, sau đó bạn có thể chọn các hàng mà bạn thực sự muốn từ sản phẩm cartesian này. Tuy nhiên, MySQL không thực sự theo sát và tạo ra ma trận khổng lồ này, nhưng về mặt ngữ nghĩa thì điều này có nghĩa là gì.
Cú pháp JOIN là tiêu chuẩn ANSI xác định rõ ràng hơn cách các bảng tương tác. Bằng cách đặt ON
bên cạnh JOIN
, nó làm rõ điều gì liên kết hai bảng với nhau.
Về mặt chức năng, chúng sẽ thực hiện giống nhau cho hai truy vấn của bạn. Sự khác biệt xuất hiện khi bạn bắt đầu sử dụng [OUTER]
khác THAM GIA các loại.
Đối với MySQL cụ thể, ký hiệu dấu phẩy có một điểm khác biệt
STRAIGHT_JOIN tương tự như JOIN, ngoại trừ việc bảng bên trái luôn được đọc trước bảng bên phải. Điều này có thể được sử dụng cho (một vài) trường hợp mà trình tối ưu hóa kết hợp đặt các bảng không đúng thứ tự.
Tuy nhiên, điều đó sẽ không khôn ngoan ngân hàng về khoản chênh lệch này.