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

 

Tags