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

Sử dụng dấu phẩy giữa các câu SELECT trong MySQL (CROSS JOIN)

Trong MySQL, SELECT * FROM bang1, bang2 tương đương SELECT * FROM bang1 CROSS JOIN bang2, tạo tích Descartes (mỗi hàng bang1 ghép với mọi hàng bang2).

Ví dụ minh họa

Tạo 2 bảng:

mysql> CREATE TABLE DemoTable1882 (Id INT);
mysql> INSERT INTO DemoTable1882 VALUES(10),(20),(30);
mysql> CREATE TABLE DemoTable1883 (Id INT);
mysql> INSERT INTO DemoTable1883 VALUES(100),(101),(102);

Cú pháp dấu phẩy:

mysql> SELECT * FROM DemoTable1882, DemoTable1883;

Cú pháp CROSS JOIN (tương đương):

mysql> SELECT * FROM DemoTable1882 CROSS JOIN DemoTable1883;

Kết quả (3x3=9 hàng):

+------+------+
| Id   | Id   |
+------+------+
|   10 |  100 |
|   20 |  100 |
|   30 |  100 |
|   10 |  101 |
|   20 |  101 |
|   30 |  101 |
|   10 |  102 |
|   20 |  102 |
|   30 |  102 |
+------+------+

Cảnh báo: CROSS JOIN tạo m*n hàng, rất nguy hiểm với bảng lớn. Luôn dùng INNER JOIN ... ON khi có điều kiện liên kết.