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
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi Financial Student Contest (FSC) mùa 13 – CLB Tài chính – Chứng khoán (SeSC) – Đại học Ngoại Thương CSII TP. HCM (FTU2)

Chiều tối ngày 13/06/2025, Chung kết cuộc thi Financial Student Contest (FSC) mùa 13 do CLB Tài chính – Chứng khoán (SeSC) thuộc Đại học Ngoại Thương CSII TP. HCM (FTU2)

Xem thêm
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi myInsight – MDS Datathon Challenge 2025 – CLB Toán ứng dụng & Khoa học dữ liệu (MDS) – CSII Đại học Ngoại Thương TP. HCM (FTU2)

Chiều ngày 08/06/2025 vừa qua, cuộc thi myInsight – MDS Datarthon Challenge 2025 đã chính thức tiến đến vòng chung kết dưới sự góp mặt của top 5 đội thi xuất

Xem thêm
Cảm nhận học viên khóa Excel for Analysts

“Mình rất hài lòng về tính ứng dụng thực tế và khả năng nâng cao hiệu quả công việc của khóa học.” Anh Nguyễn Trung Hòa – nhân sự ngành Kế

Xem thêm
Một số hàm sắp xếp (Sort) phổ biến trong Numpy

Sắp xếp (Sort) là một thao tác phổ biến trong phân tích dữ liệu và lập trình. Nó liên quan đến việc sắp xếp các phần tử trong một tập hợp theo

Xem thêm