Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Phân biệt CROSS JOIN và INNER JOIN trong MySQL

Chỉ khác ở điều kiện join (join-predicate)

  • INNER JOIN: **Bắt buộc** có điều kiện ON hoặc WHERE để lọc hàng khớp.
  • CROSS JOIN: **Không có** điều kiện khớp – trả về tích Descartes toàn bộ.

Ví dụ cùng 2 bảng

tbl_1 (4 hàng), tbl_2 (4 hàng).

INNER JOIN có điều kiện:

SELECT tbl_1.id, tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+----+----+
| id | id |
+----+----+
| 4  | A  |
+----+----+  -- 1 hàng

CROSS JOIN (bỏ điều kiện):

SELECT tbl_1.id, tbl_2.id FROM tbl_1 JOIN tbl_2;
+----+----+
| id | id |
+----+----+
| 1  | A  |
| 2  | A  |
... (16 hàng) ...
| 4  | D  |
+----+----+  -- 4x4=16 hàng