Các hàm Join trong SQL

Hàm JOIN là một trong những hàm quan trọng nhất trong SQL, nó cho phép bạn kết hợp dữ liệu từ hai hoặc nhiều bảng dựa trên các cột chung. Việc sử dụng JOIN giúp bạn truy xuất dữ liệu một cách hiệu quả và dễ dàng hơn, đặc biệt khi dữ liệu được phân chia trên nhiều bảng. 

Cùng tìm hiểu cách sử dụng các hàm JOIN cùng ví dụ thông qua bài viết này nhé!

INNER JOIN/JOIN

Khi sử dụng INNER JOIN, chỉ những bản ghi có giá trị khớp nhau ở cả hai bảng mới được trả về. 

Cấu trúc:  

SELECT *  

FROM table1  

INNER JOIN table2  

ON table1.column = table2.column; 

Giải thích: 

– SELECT *: Chọn tất cả các cột từ cả hai bảng. 
– table1: Tên bảng thứ nhất. 
– table2: Tên bảng thứ hai. 
– ON: Chỉ định điều kiện join, so sánh các cột chung giữa hai bảng. 

Ví dụ: 

Giả sử chúng ta có hai bảng: 

– genre: Chứa thông tin về thể loại phim, bao gồm mã phim (movie_id) và thể loại (genre). 
– rating: Chứa thông tin về xếp hạng phim, bao gồm mã phim (movie_id) và thứ hạng (rating). 
Để lấy thông tin về thể loại và thứ hạng, chúng ta có thể sử dụng INNER JOIN như sau: 

SELECT * 

FROM genre 

INNER JOIN rating 

ON genre.movide_id = rating.movie_id; 

Kết quả trả về sẽ bao gồm các bản ghi có mã phim trong bảng genre khớp với mã phim trong bảng rating

2

LEFT JOIN:

Khi sử dụng LEFT JOIN, tất cả các bản ghi từ bảng bên trái (bảng được chỉ định đầu tiên) sẽ được trả về, ngay cả khi không có bản ghi nào khớp trong bảng bên phải (bảng được chỉ định thứ hai). 

Cấu trúc: 

SELECT * 
FROM table1 
LEFT JOIN table2 
ON table1.column = table2.column;

Giải thích: 

– SELECT *: Chọn tất cả các cột từ cả hai bảng. 

– table1: Tên bảng bên trái.

– table2: Tên bảng bên phải. 

– ON: Chỉ định điều kiện join, so sánh các cột chung giữa hai bảng. 

Ví dụ: 

Chúng ta muốn lấy thông tin về thể loại và thứ hạng của các bộ phim, bao gồm cả những bộ phim chưa được đánh giá. Chúng ta có thể sử dụng LEFT JOIN như sau: 

SELECT g.movie_id, g.genre, r.rating 

FROM genre AS g 

LEFT JOIN rating AS r 

ON genre.movide_id = rating.movie_id; 

Kết quả trả về sẽ bao gồm tất cả các bản ghi trong bảng genre. Đối với những bộ phim chưa được đánh giá, cột rating sẽ trả về giá trị NULL. 

3

RIGHT JOIN

Khi sử dụng RIGHT JOIN, tất cả các bản ghi từ bảng bên phải (bảng được chỉ định thứ hai) sẽ được trả về, ngay cả khi không có bản ghi nào khớp trong bảng bên trái (bảng được chỉ định đầu tiên). 

Cấu trúc: 

SELECT * 
FROM table1 
RIGHT JOIN table2 
ON table1.column = table2.column; 

Giải thích: 

– SELECT *: Chọn tất cả các cột từ cả hai bảng. 
– table1: Tên bảng bên trái. 
– table2: Tên bảng bên phải. 
– ON: Chỉ định điều kiện join, so sánh các cột chung giữa hai bảng. 

Ví dụ: 

Chúng ta muốn lấy thông tin về điểm đánh giá và thể loại của những phim đó. Chúng ta có thể sử dụng RIGHT JOIN như sau: 

SELECT movie_id, genre, rating 

FROM movie 

RIGHT JOIN rating 

ON genre.movide_id = rating.movie_id; 

Kết quả trả về sẽ bao gồm tất cả các bản ghi trong bảng rating. Đối với những phim chưa được ghi nhận thể loại, cột genre sẽ trả về giá trị NULL. 

4

FULL JOIN

FULL JOIN trả về tất cả các bản ghi từ cả hai bảng, bao gồm cả những bản ghi chỉ xuất hiện trong một trong hai bảng. 

Cấu trúc: 

SELECT * 
FROM table1 
FULL JOIN table2 
ON table1.column = table2.column;  

Giải thích: 

– SELECT *: Chọn tất cả các cột từ cả hai bảng. 
– table1: Tên bảng bên trái. 
– table2: Tên bảng bên phải. 
– ON: Chỉ định điều kiện join, so sánh các cột chung giữa hai bảng. 

Ví dụ: 

Chúng ta muốn lấy thông tin về thể loại và đánh giá của tất cả các phim, bao gồm cả những bộ phim chưa được ghi nhận thể loại và những bộ phim chưa có đánh giá. Chúng ta có thể sử dụng FULL JOIN như sau: 

SELECT movie_id, genre, rating 

FROM movie 

FULL JOIN rating 

ON genre.movide_id = rating.movie_id; 

Kết quả trả về sẽ bao gồm tất cả các bản ghi trong cả hai bảng movie và rating. Đối với những bộ phim chưa được ghi nhận thể loại, cột genre sẽ trả về giá trị NULL. Đối với những bộ phim chưa có đánh giá nào, cột rating sẽ trả về giá trị NULL. 

5

Xem thêm: 

Phân tích dữ liệu cùng SQL: Các câu lệnh truy vấn đơn giản

Vai trò và kỹ năng của Data Analyst trong năm 2024

Khóa học Ứng dụng SQL trong xử lý dữ liệu

Combo 3 Khóa học Data Analytics for Professionals

 

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

1 + 1 = ? (Nhập Haii để trả lời đúng)

Bài viết liên quan
Khám phá hàm Lag và Lead trong SQL

Trong phân tích dữ liệu, hàm LAG() và LEAD() sẽ là công cụ hỗ trợ đắc lực cho việc so sánh giá trị hiện tại với giá trị liền trước hoặc liền

Xem thêm
[RECAP] Training Top 20 – myInsight – MDS Datathon Challenge 2025 – CLB Toán ứng dụng & Khoa học dữ liệu (MDS) – Đại học Ngoại Thương CSII TP. HCM (FTU2)

Tối ngày 18/05/2025, buổi training dành riêng cho Top 20 đội thi xuất sắc nhất cuộc thi myInsight – MDS Datathon Challenge 2025 đã diễn ra vô cùng thành công thông

Xem thêm
Khám Phá Tính Năng Nhóm và Phân Nhóm Dữ Liệu trong Power BI

Trong quá trình xây dựng biểu đồ, Power BI Desktop sẽ tự động tổng hợp dữ liệu thành các nhóm dựa trên các giá trị có trong tập dữ liệu gốc.

Xem thêm
[RECAP] Chuỗi Workshop MARKET-A – CLB Chứng khoán SCUE – Đại học Kinh tế TP. HCM (UEH)

Chiều ngày 15/05/2025 vừa rồi, UniTrain đã hân hạnh có mặt với vai trò là Nhà tài trợ Bạc tại buổi Workshop 2: OPTIVEST thuộc chuỗi chương trình Workshop MARKET-A do

Xem thêm