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

MySQL JOIN là gì? Các loại: CROSS, INNER, LEFT, RIGHT

Khái niệm

JOIN liên kết dữ liệu từ 2+ bảng dựa trên cột chung (join key), tạo ra bảng tạm thời mới.

Các loại JOIN chính

1. CROSS JOIN (Tích Descartes)

Mỗi hàng bảng 1 ghép với mỗi hàng bảng 2. Không cần điều kiện.

SELECT tbl_1.id, tbl_2.id FROM tbl_1 CROSS JOIN tbl_2;
-- 4x4 = 16 hàng

2. INNER JOIN (Equi Join)

Chỉ trả về hàng có giá trị khớp ở cả hai bảng (cần điều kiện ON).

SELECT tbl_1.id, tbl_2.id FROM tbl_1 INNER JOIN tbl_2 ON tbl_1.name = tbl_2.name;
-- 1 hàng (Aarav)

3. LEFT JOIN

Trả về **tất cả hàng bảng trái** + hàng khớp từ bảng phải. Không khớp → NULL ở cột bảng phải.

SELECT tbl_1.id, tbl_2.id FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.name = tbl_2.name;
-- 4 hàng: 3 hàng NULL, 1 hàng khớp (Aarav)

4. RIGHT JOIN

Ngược LEFT: tất cả hàng bảng phải + khớp từ bảng trái. Không khớp → NULL ở cột bảng trái.

SELECT tbl_1.id, tbl_2.id FROM tbl_1 RIGHT JOIN tbl_2 ON tbl_1.name = tbl_2.name;
-- 4 hàng: 1 hàng khớp, 3 hàng NULL ở cột tbl_1