Chúng trả về cùng một kết quả vì chúng giống hệt nhau về mặt ngữ nghĩa. Cái này:
select *
from A, B
... là (wince) cú pháp ANSI-89. Nếu không có mệnh đề WHERE để liên kết các bảng với nhau, kết quả là một tích cacte. Đó cũng chính là những gì mà giải pháp thay thế cung cấp:
select *
from A
cross join B
... nhưng CROSS JOIN là cú pháp ANSI-92.
Giới thiệu về Hiệu suất
Không có sự khác biệt về hiệu suất giữa chúng.
Tại sao sử dụng ANSI-92?
Lý do sử dụng cú pháp ANSI-92 là để hỗ trợ OUTER JOIN (IE:LEFT, FULL, RIGHT) - Cú pháp ANSI-89 không có bất kỳ cú pháp nào, vì vậy nhiều cơ sở dữ liệu đã triển khai riêng của chúng (không chuyển sang bất kỳ cơ sở dữ liệu nào khác ). IE:(+)
của Oracle , =*
của SQL Server