SQL FULL OUTER JOIN

Khám Phá SQL FULL OUTER JOIN

SQL (Structured Query Language) là ngôn ngữ dùng để giao tiếp với cơ sở dữ liệu. Trong SQL, một trong những khái niệm quan trọng là JOIN, cho phép chúng ta kết hợp các bảng dữ liệu khác nhau. Một loại JOIN phổ biến là FULL OUTER JOIN, cho phép lấy tất cả các bản ghi từ cả hai bảng và kết hợp chúng lại với nhau dựa trên điều kiện nào đó.

Định Nghĩa của FULL OUTER JOIN

FULL OUTER JOIN là một trong những loại JOIN trong SQL, nó kết hợp các bản ghi từ hai bảng. Nó sẽ trả về tất cả các bản ghi từ bảng bên trái, tất cả các bản ghi từ bảng bên phải, và khi không có sự khớp nào, nó sẽ điền giá trị NULL ở những cột không có dữ liệu tương ứng.

Cú Pháp của FULL OUTER JOIN

SELECT column1, column2, ...
FROM table1
FULL OUTER JOIN table2
ON table1.common_column = table2.common_column;

Ví Dụ về FULL OUTER JOIN

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

Customers
+----+----------+
| ID | Name     |
+----+----------+
| 1  | Alice    |
| 2  | Bob      |
| 3  | Charlie  |
+----+----------+

Orders
+----+----------+----------+
| ID | OrderID  | CustomerID|
+----+----------+----------+
| 1  | A001     | 1        |
| 2  | A002     | 1        |
| 3  | A003     | 2        |
| 4  | A004     | 4        |
+----+----------+----------+

Bây giờ, nếu chúng ta muốn lấy tất cả khách hàng và đơn hàng của họ (nếu có), chúng ta có thể sử dụng FULL OUTER JOIN như sau:

SELECT Customers.ID, Customers.Name, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.ID = Orders.CustomerID;

Kết quả của truy vấn trên sẽ là:

+----+----------+----------+
| ID | Name     | OrderID  |
+----+----------+----------+
| 1  | Alice    | A001     |
| 1  | Alice    | A002     |
| 2  | Bob      | A003     |
| 3  | Charlie  | NULL     |
| NULL | NULL    | A004     |
+----+----------+----------+

Trong kết quả trên, chúng ta thấy rằng:

  • William có hai đơn hàng.
  • Bob có một đơn hàng.
  • Charlie không có đơn hàng, nhưng thông tin của anh ấy vẫn được hiển thị.
  • Có một đơn hàng từ một khách hàng không tồn tại (CustomerID = 4), giá trị của cột CustomerID là NULL.

Kết Luận

FULL OUTER JOIN là một công cụ mạnh mẽ trong SQL cho phép bạn kết hợp và lấy thông tin từ nhiều bảng. Hiểu rõ cách hoạt động của FULL OUTER JOIN và cách sử dụng nó sẽ giúp bạn quản lý và phân tích dữ liệu hiệu quả hơn trong các cơ sở dữ liệu.