SQL FULL OUTER JOIN Keyword


FULL OUTER JOIN  keyword ส่งคืนค่าเรคคอร์ดที่มีค่าตรงกันในตารางด้านซ้าย (table1) หรือ ตารางด้านขวา (table2)

Tip: FULL OUTER JOIN และ FULL JOIN เหมือนกัน

FULL OUTER JOIN Syntax

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;

หมายเหตุ: FULL OUTER JOIN อาจส่งชุดผลลัพธ์ที่ใหญ่มากได้


Demo Database

ในตัวอย่างนี้เราจะใช้ฐานข้อมูลที่เป็นที่รู้กจักอย่าง Northwind โดยตัวอย่างด้านล่างจะเป็นการเลือกจากตาราง “Customers”

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico

และการเลือกจากตาราง “Orders”

OrderIDCustomerIDEmployeeIDOrderDateShipperID
10308271996-09-183
103093731996-09-191
103107781996-09-202


ตัวอย่าง SQL FULL OUTER JOIN

คำสั่ง SQL ต่อไปนี้จะเลือกตาราง customers และ orders ทั้งหมด:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

ผลลัพธ์จะออกมาเป็นแบบนี้

CustomerNameOrderID
Null10309
Null10310
Alfreds FutterkisteNull
Ana Trujillo Emparedados y helados10308
Antonio Moreno TaqueríaNull

หมายเหตุ: FULL OUTER JOIN keyword ส่งค่าเรคคอร์ดทั้งหมดจากทั้งสองตารางไม่ว่าตารางนั้นจะตรงกันหรือไม่ ดังนั้นถ้าแถวใน “Customers” ไม่ตรงกับใน “Orders” หรือถ้าแถวใน “Orders” ไม่ตรงกับใน “Customers” แถวเหล่านั้นก็จะถูกแสดงเช่นกัน