Home » Database Testing » Sử dụng JOIN để kết nối các bảng trong SQL

Sử dụng JOIN để kết nối các bảng trong SQL

Update: 30/09/2024

Chào mừng các bạn đến với thế giới thú vị của SQL! Trong bài viết hôm nay, “Tôi đi tét dạo” sẽ cùng bạn khám phá một trong những khái niệm quan trọng và hữu ích nhất trong SQL: JOIN. Nếu bạn mới bắt đầu tìm hiểu về cơ sở dữ liệu, thì JOIN sẽ là công cụ đắc lực giúp bạn kết nối các bảng và khai thác dữ liệu một cách hiệu quả. Hãy cùng nhau tìm hiểu cách thức hoạt động của các loại JOIN phổ biến nhất như INNER JOIN, LEFT JOINRIGHT JOIN nhé!

SQL JOIN là gì?

SQL JOIN là một câu lệnh cho phép bạn kết nối dữ liệu từ hai hoặc nhiều bảng trong một cơ sở dữ liệu. JOIN rất hữu ích khi bạn cần truy xuất thông tin liên quan từ nhiều nguồn khác nhau. Hãy tưởng tượng rằng bạn đang tổ chức một bữa tiệc và muốn biết ai sẽ tham gia, thì JOIN giống như việc bạn lấy danh sách khách mời từ nhiều nguồn khác nhau: bạn có danh sách bạn bè, đồng nghiệp và họ hàng, và bạn cần kết hợp tất cả chúng lại với nhau.

1. INNER JOIN

INNER JOIN là loại JOIN phổ biến nhất và được sử dụng để lấy dữ liệu chỉ khi có sự tương ứng giữa các bảng. Nói cách khác, nó chỉ trả về các hàng mà có giá trị tương ứng trong cả hai bảng.

Ví dụ về INNER JOIN

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

Bảng Customers:

CustomerIDCustomerName
1Alice
2Bob
3Charlie

Bảng Orders:

OrderIDCustomerIDOrderAmount
11100
22150
34200

Dưới đây là câu lệnh INNER JOIN:

SELECT Customers.CustomerName, Orders.OrderAmount
FROM Customers
INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

Kết quả:

CustomerNameOrderAmount
Alice100
Bob150

Như bạn có thể thấy, chỉ có Alice và Bob có đơn hàng, còn Charlie không có bất kỳ đơn hàng nào, nên không được hiển thị trong kết quả. Vậy là INNER JOIN chỉ trả về dữ liệu mà có sự liên kết giữa hai bảng. Thú vị không nào?

2. LEFT JOIN

LEFT JOIN là một lựa chọn tuyệt vời khi bạn muốn lấy tất cả các hàng từ bảng bên trái (left table) và các hàng tương ứng từ bảng bên phải (right table). Nếu không có sự tương ứng, LEFT JOIN sẽ trả về NULL cho các cột từ bảng bên phải.

Ví dụ về LEFT JOIN

Chúng ta sẽ sử dụng cùng hai bảng như trên. Đây là câu lệnh LEFT JOIN:

SELECT Customers.CustomerName, Orders.OrderAmount
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

Kết quả:

CustomerNameOrderAmount
Alice100
Bob150
CharlieNULL

Với LEFT JOIN, ngay cả khi Charlie không có đơn hàng nào, tên của anh ta vẫn xuất hiện trong kết quả với giá trị NULL cho cột OrderAmount. Có thể thấy, LEFT JOIN rất hữu ích khi bạn muốn có đầy đủ thông tin từ một bảng mà không bỏ lỡ bất kỳ dữ liệu nào!

3. RIGHT JOIN

RIGHT JOIN hoạt động tương tự như LEFT JOIN, nhưng nó lấy tất cả các hàng từ bảng bên phải và các hàng tương ứng từ bảng bên trái. Nếu không có sự tương ứng, RIGHT JOIN sẽ trả về NULL cho các cột từ bảng bên trái.

Ví dụ về RIGHT JOIN

Sử dụng lại hai bảng như trên, nhưng chúng ta sẽ áp dụng RIGHT JOIN:

SELECT Customers.CustomerName, Orders.OrderAmount
FROM Customers
RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

Kết quả:

CustomerNameOrderAmount
Alice100
Bob150
NULL200

Như bạn thấy, RIGHT JOIN trả về dữ liệu từ bảng Orders ngay cả khi không có khách hàng tương ứng trong bảng Customers. Điều này cho thấy RIGHT JOIN rất hữu ích khi bạn muốn lấy thông tin từ bảng mà bạn chưa chắc chắn có dữ liệu liên kết trong bảng còn lại.

Tổng kết

Vậy là chúng ta đã cùng nhau tìm hiểu ba loại JOIN phổ biến trong SQL: INNER JOIN, LEFT JOIN và RIGHT JOIN. Mỗi loại JOIN đều có công dụng riêng, giúp bạn kết nối và phân tích dữ liệu một cách hiệu quả. Hy vọng rằng qua bài viết này, bạn đã hiểu rõ hơn về cách sử dụng JOIN để kết nối các bảng trong SQL.

Nếu bạn có câu hỏi hay ý kiến, đừng ngần ngại chia sẻ bên dưới nhé! Và đừng quên theo dõi những bài viết tiếp theo của “Tôi đi tét dạo” để khám phá thêm nhiều điều thú vị về SQL và cơ sở dữ liệu. Còn bây giờ, hãy mở máy tính lên và thực hành ngay với những gì bạn vừa học nào!