Cross JOIN trong SQL
Khi thực hiện phép cross JOIN hay có một tên khác là Cartesian JOIN, mỗi hàng của bảng thứ nhất sẽ được kết hợp với mỗi hàng của bảng thứ hai. Do vậy số lượng các hàng trong bảng mới tạo ra bằng tích số lượng hàng giữa các bảng.
Cú pháp của phép cross JOIN là:
SELECT * FROM [BANG1] CROSS JOIN [BANG2]
Hoặc
SELECT * FROM [ BANG1] , [BANG2]
Giả sử ta có hai bảng dữ liệu:
Bảng 1 – Diemso
Nguoi_choi | PhongID | Diem |
Phan Linh | 1 | 2 |
Lan Anh | 1 | 3 |
Pham An | 2 | 2 |
Le Hoi | 3 | 5 |
Bảng 2 – Phong
PhongID | Ten |
1 | IT |
2 | HR |
3 | Marketing |
Sau khi thực hiện phép cross JOIN:
SELECT * FROM Diemso CROSS JOIN Phong
Kết quả thu được:
Nguoi_choi | PhongID | Diem | PhongID | Ten |
Phan Linh | 1 | 2 | 1 | IT |
Lan Anh | 1 | 3 | 1 | IT |
Pham An | 2 | 2 | 1 | IT |
Le Hoi | 3 | 5 | 1 | IT |
Phan Linh | 1 | 2 | 2 | HR |
Lan Anh | 1 | 3 | 2 | HR |
Pham An | 2 | 2 | 2 | HR |
Le Hoi | 3 | 5 | 2 | HR |
Phan Linh | 1 | 2 | 3 | Marketing |
Lan Anh | 1 | 3 | 3 | Marketing |
Pham An | 2 | 2 | 3 | Marketing |
Le Hoi | 3 | 5 | 3 | Marketing |
Cách sử dụng cross JOIN hay bất kỳ một loại JOIN nào khác là do mong muốn lấy dữ liệu của bạn. Và ta hoàn toàn có thể kết hợp các kỹ thuật khác nhau để có thể lấy được dữ liệu như mong muốn.