JOIN Trong SQL: Kết Hợp Dữ Liệu Từ Nhiều Bảng Một Cách Hiệu Quả
Chia sẻ
"Hiểu rõ INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN và CROSS JOIN. Khi nào dùng loại nào? Bài viết giải thích chi tiết kèm ví dụ thực tế."
Tại Sao Cần JOIN?
Trong cơ sở dữ liệu quan hệ, dữ liệu được chia thành nhiều bảng để tránh trùng lặp (normalization). JOIN cho phép kết hợp các bảng lại với nhau dựa trên cột chung, giúp bạn lấy được bức tranh toàn cảnh từ dữ liệu phân tán.
INNER JOIN — Chỉ Lấy Dữ Liệu Khớp
SELECT e.first_name, e.salary, d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.id;INNER JOIN chỉ trả về các dòng có giá trị khớp ở cả hai bảng. Nếu nhân viên chưa được gán phòng ban, hoặc phòng ban không có nhân viên, dòng đó sẽ bị loại.
LEFT JOIN — Giữ Tất Cả Bảng Bên Trái
-- Lấy TẤT CẢ nhân viên, kể cả chưa có phòng ban
SELECT e.first_name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.id;RIGHT JOIN Và FULL OUTER JOIN
-- RIGHT JOIN: giữ tất cả phòng ban
SELECT e.first_name, d.department_name
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.id;
-- FULL OUTER JOIN: giữ tất cả cả hai bên
SELECT e.first_name, d.department_name
FROM employees e
FULL OUTER JOIN departments d ON e.department_id = d.id;Multi-Table JOIN
SELECT
e.first_name,
d.department_name,
p.project_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.id
INNER JOIN project_assignments pa ON e.id = pa.employee_id
INNER JOIN projects p ON pa.project_id = p.id;Mẹo Hay
Luôn dùng alias (e, d, p) để code ngắn gọn
LEFT JOIN + WHERE IS NULL: tìm dòng không khớp
Tránh SELECT * khi JOIN nhiều bảng — chỉ lấy cột cần thiết
Kết Luận
JOIN là kỹ năng quan trọng thứ hai sau SELECT. Hãy thực hành với các bộ dữ liệu có quan hệ để hiểu sâu về từng loại JOIN và khi nào nên dùng.
📥 Tải File Demo
📥 Tải file demo: join-sql-data.xlsx
📎 File đính kèm bài viết — chứa đầy đủ dữ liệu mẫu
Mục lục
Muốn làm chủ SQL?
Tham gia khóa học E-Learning của Trà Đá Data để được hướng dẫn chi tiết từ A-Z với Case Study thực tế.
Tìm hiểu ngayBình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
Bài viết liên quan
Khám phá thêm các bài viết cùng chủ đề

SQL Nâng Cao: Window Functions, CTE Và Kỹ Thuật Tối Ưu Query
Hướng dẫn SQL nâng cao toàn diện: Window Functions (ROW_NUMBER, RANK, LAG, LEAD), CTE recursive, Running totals, PIVOT, và kỹ thuật tối ưu query. Kèm ví dụ thực tế cho Data Analyst.

SQL Cho Người Mới Bắt Đầu: SELECT, JOIN, GROUP BY Và Subquery Từ A Đến Z
Hướng dẫn SQL từ cơ bản đến trung cấp: SELECT, WHERE, JOIN, GROUP BY, HAVING, Subquery, Window Functions. Ví dụ thực tế với dữ liệu kinh doanh, so sánh với Excel.
Stored Procedure Trong SQL: Viết Thủ Tục Lưu Trữ Và Tự Động Hoá Truy Vấn
Hướng dẫn tạo Stored Procedure trong SQL Server và PostgreSQL: parameters, variables, control flow, error handling — tự động hoá truy vấn phức tạp.
