Tin tức

Kiến thức SQL: Nối bảng bằng toán tử JOIN

06/07/2013

Câu lệnh SQL JOIN được sử dụng để kết hợp các hàng từ hai hoặc nhiều bảng, dựa trên một trường chung giữa chúng.

Loại phổ biến nhất của JOIN là: SQL INNER JOIN (nối bảng đơn giản). Một SQL INNER JOIN trả về tất cả các hàng từ nhiều bảng, khi mệnh đề WHERE thỏa mãn.

Ví dụ 1 bảng “Orders” dưới đây:

OrderID

CustomerID

OrderDate

10308

2

1996-09-18

10309

37

1996-09-19

10310

77

1996-09-20

Và đây là bảng “Customers”:

CustomerID

CustomerName

ContactName

Country

1

Alfreds Futterkiste

Maria Anders

Germany

2

Ana Trujillo Emparedados y helados

Ana Trujillo

Mexico

3

Antonio Moreno Taquería

Antonio Moreno

Mexico

 

Chú ý rằng "CustomerID" cột trong bảng "Orders" đề cập đến các khách hàng trong bảng "Customers". Mối quan hệ giữa hai bảng trên là cột "CustomerID".

Sau đó, nếu chúng ta chạy các câu lệnh SQL sau đây (INNER JOIN):

Ví dụ:

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

Và kết quả chúng ta nhận được là:

OrderID

CustomerName

OrderDate

10308

Ana Trujillo Emparedados y helados

9/18/1996

10365

Antonio Moreno Taquería

11/27/1996

10383

Around the Horn

12/16/1996

10355

Around the Horn

11/15/1996

10278

Berglunds snabbköp

8/12/1996

 

Sự khác biệt của các loại  JOINs

Chúng ta có thể hiểu cơ bản về các loại JOIN:

  • INNER JOIN: Trả về tất cả các hàng khi có ít nhất một giá trị ở cả hai bảng
  • LEFT JOIN: Trả lại tất cả các dòng từ bảng bên trái, và các dòng đúng với điều kiện từ bảng bên phải
  • RIGHT JOIN: Trả lại tất cả các hàng từ bảng bên phải, và các dòng thỏa mãn điều kiện từ bảng bên trái
  • FULL JOIN: Trả về tất cả các dòng đúng với 1 trong các bảng.