Vì sao SQL JOIN quan trọng?
SQL JOIN cho phép bạn kết hợp dữ liệu từ nhiều bảng khác nhau, từ đó tạo ra những phân tích sâu sắc và có giá trị. Đây là kỹ năng bắt buộc phải thành thạo đối với bất kỳ ai làm việc trong lĩnh vực phân tích dữ liệu, phát triển backend hoặc khoa học dữ liệu.
1. INNER JOIN – Lấy dữ liệu giao nhau giữa hai bảng
- Trả về các dòng có khóa trùng khớp ở cả hai bảng
- Tương đương với phép giao trong toán học
Ví dụ: Danh sách khách hàng đã từng đặt hàng
2. LEFT JOIN (OUTER) – Giữ toàn bộ dữ liệu bảng bên trái
- Trả về tất cả dòng từ bảng bên trái và các dòng khớp từ bảng bên phải
- Nếu không có khớp, dữ liệu bên phải sẽ là
NULL
Ví dụ: Danh sách tất cả khách hàng, kể cả chưa từng đặt hàng
3. RIGHT JOIN (OUTER) – Giữ toàn bộ dữ liệu bảng bên phải
- Trả về tất cả dòng từ bảng bên phải và các dòng khớp từ bảng bên trái
- Ít dùng hơn, nhưng logic tương tự LEFT JOIN
Ví dụ: Danh sách tất cả đơn hàng, kể cả từ khách hàng đã bị xóa
4. FULL OUTER JOIN – Kết hợp toàn bộ dữ liệu từ cả hai bảng
- Trả về tất cả dòng từ cả hai bảng, dù có khớp hay không
- Dòng không khớp sẽ có giá trị
NULL
ở bảng còn lại
Ví dụ: Hiển thị toàn bộ khách hàng và đơn hàng, kể cả không khớp
5. CROSS JOIN – Tạo tích Descartes (Cartesian Product)
- Trả về tất cả tổ hợp có thể giữa hai bảng
- Cẩn thận khi dùng: 1.000 x 1.000 = 1.000.000 dòng!
Ví dụ: Tạo danh sách tất cả cặp sản phẩm và nhà cung cấp
6. SELF JOIN – Tự JOIN chính bảng đó
- Dùng để xử lý dữ liệu có cấu trúc phân cấp (như nhân viên – quản lý)
- Cần đặt bí danh (alias) để phân biệt
Ví dụ: Tìm quản lý của từng nhân viên
✅ Mẹo hay khi dùng JOIN
- Luôn dùng bí danh (alias) như A, B để dễ đọc
- Ưu tiên dùng JOIN ON thay vì WHERE để rõ ràng hơn
- Dùng LIMIT để kiểm tra kết quả trước khi chạy toàn bộ truy vấn
Kết luận
Việc hiểu rõ và sử dụng thành thạo các loại SQL JOIN sẽ giúp bạn xử lý dữ liệu linh hoạt, tối ưu hóa truy vấn và nâng cao hiệu quả phân tích. Dù bạn là lập trình viên, nhà phân tích hay kỹ sư dữ liệu, đây là kỹ năng không thể thiếu.