Từ khóa FULL OUTER JOIN trong SQL
Từ khóa FULL OUTER JOIN trong SQL
Từ khóa FULL OUTER JOIN
trả về tất cả các bản ghi khi có sự trùng khớp trong các bản ghi bảng bên trái (bảng 1) hoặc bên phải (bảng 2).
Mẹo: FULL OUTER JOIN
và FULL JOIN
giống nhau.
Cú pháp THAM GIA OUTER ĐẦY ĐỦ
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition ;
Lưu ý: FULL OUTER JOIN
có khả năng trả về các tập kết quả rất lớn!
Cơ sở dữ liệu demo
Trong hướng dẫn này, chúng tôi sẽ sử dụng cơ sở dữ liệu mẫu Northwind nổi tiếng.
Dưới đây là lựa chọn từ bảng "Khách hàng":
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
Và một lựa chọn từ bảng "Đơn hàng":
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10308 | 2 | 7 | 1996-09-18 | 3 |
10309 | 37 | 3 | 1996-09-19 | 1 |
10310 | 77 | 8 | 1996-09-20 | 2 |
Ví dụ về THAM GIA ĐẦY ĐỦ CỦA SQL
Câu lệnh SQL sau đây chọn tất cả khách hàng và tất cả đơn đặt hàng:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
Một lựa chọn từ tập kết quả có thể trông như thế này:
CustomerName | OrderID |
---|---|
Null | 10309 |
Null | 10310 |
Alfreds Futterkiste | Null |
Ana Trujillo Emparedados y helados | 10308 |
Antonio Moreno Taquería | Null |
Lưu ý: Từ khóa FULL OUTER JOIN
trả về tất cả các bản ghi khớp từ cả hai bảng cho dù bảng kia có khớp hay không. Vì vậy, nếu có các hàng trong "Khách hàng" không khớp trong "Đơn hàng" hoặc nếu có các hàng trong "Đơn hàng" không khớp trong "Khách hàng" thì các hàng đó cũng sẽ được liệt kê.