CROSS JOIN là toán tử SQL để thực hiện một sản phẩm cacte đầy đủ giữa hai bảng. Vì nó là một sản phẩm của cartesian, nó không cho phép bất kỳ điều kiện nào trong quá trình hoạt động , bạn chỉ có thể hạn chế kết quả của nó bằng một số thao tác lọc (điều kiện WHERE).
Các toán tử JOIN (INNER và OUTER JOIN, tức là), chỉ đơn giản là tích cacte cùng với toán tử lọc được thể hiện trong phần BẬT của toán tử (và trên thực tế, trong cú pháp ban đầu của SQL không có toán tử JOIN, chỉ đơn giản là "dấu phẩy" ký hiệu để biểu thị sản phẩm với điều kiện tham gia luôn được thể hiện trong phần WHERE).
Ví dụ:
ký hiệu "cũ":
SELECT ...
FROM table1 t1, table2 t2
WHERE t1.attribute = t2.attribute
tương đương với ký hiệu "hiện đại":
SELECT ...
FROM table1 t1 INNER JOIN table2 t2 ON t1.attribute = t2.attribute
trong khi, đối với sản phẩm cacte:
ký hiệu "cũ":
SELECT ...
FROM table1 t1, table2 t2
tương đương với ký hiệu "hiện đại":
SELECT ...
FROM table1 t1 CROSS JOIN table2 t2
Nói cách khác, một CROSS JOIN yêu cầu một điều kiện thực sự là một loại INNER JOIN.