MySQL CROSS JOIN

MySQL CROSS JOIN: Định Nghĩa và Cú Pháp

CROSS JOIN là một loại phép kết hợp trong MySQL mà không yêu cầu điều kiện nào giữa hai bảng. Thay vào đó, nó tạo ra một "product cartesian" của hai bảng, tức là mỗi bản ghi trong bảng đầu tiên sẽ được kết hợp với tất cả các bản ghi trong bảng thứ hai. Kết quả sẽ là một bảng mới với số lượng bản ghi bằng tích của số lượng bản ghi của hai bảng gốc.

Cú Pháp

CROSS JOIN

Cú pháp của CROSS JOIN trong MySQL có thể được viết như sau:

SELECT column1, column2, ...
FROM table1
CROSS JOIN table2;

Bạn có thể thay thế `table1` và `table2` bằng tên bảng thực tế mà bạn muốn kết hợp và `column1`, `column2` bằng các cột bạn muốn lấy từ các bảng đó.

Ví dụ

Dưới đây là một ví dụ minh họa cho phép kết hợp CROSS JOIN:

-- Giả sử chúng ta có hai bảng: "products" và "categories"
-- Bảng products
+----+---------------+
| id | name          |
+----+---------------+
| 1  | T-Shirt       |
| 2  | Jeans         |
| 3  | Sneakers      |
+----+---------------+

-- Bảng categories
+----+------------+
| id | category   |
+----+------------+
| 1  | Clothing   |
| 2  | Footwear   |
+----+------------+

-- Sử dụng CROSS JOIN để kết hợp hai bảng này
SELECT products.name, categories.category
FROM products
CROSS JOIN categories;

Kết quả của truy vấn trên sẽ là:

+---------------+------------+
| name          | category   |
+---------------+------------+
| T-Shirt       | Clothing   |
| T-Shirt       | Footwear   |
| Jeans         | Clothing   |
| Jeans         | Footwear   |
| Sneakers      | Clothing   |
| Sneakers      | Footwear   |
+---------------+------------+

Như bạn có thể thấy, mỗi sản phẩm được kết hợp với tất cả các danh mục có sẵn, tạo ra một bảng mới với tất cả các tổ hợp khả thi.

Kết Luận

CROSS JOIN là một công cụ hữu ích trong MySQL khi bạn cần tạo ra tất cả các kết hợp có thể của hai bảng mà không có điều kiện lọc nào. Mặc dù nó có thể tạo ra một lượng lớn dữ liệu, đặc biệt khi hai bảng có kích thước lớn, nhưng nó cũng có thể giúp bạn tìm ra những mối quan hệ tiềm năng giữa hai bảng trong cơ sở dữ liệu.