دستور FULL JOIN در SQL
دستور FULL JOIN در SQL هنگامی که مطابقتی در جدول سمت چپ (table1) یا جدول سمت راست (table2) وجود داشته باشد ، همه رکورد ها را بر می گرداند.
نکته: در برخی از پایگاه های داده بجای FULL JOIN
از FULL OUTER JOIN
استفاده می شود که این دو دستور هیچ فرقی با یکدیگر ندارند.
نحوه استفاده از دستور FULL JOIN
SELECT column_name(s)
FROM table1
FULL JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
نحوه استفاده از دستور FULL OUTER JOIN
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
نمونه بانک اطلاعاتی
رکورد های نمونه از جدول Customers
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 |
رکورد های نمونه از جدول Orders
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 |
مثال برای FULL OUTER JOIN در SQL
دستور SQL زیر همه مشتریان و سفارشات آنها را از جداول Orders
و Customers
انتخاب می کند.
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
مثال برای FULL JOIN در SQL
دستور SQL زیر همه مشتریان و سفارشات آنها را از جداول Orders
و Customers
انتخاب می کند.
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
نمونه خروجی دستورات بالا:
CustomerName | OrderID |
---|---|
Alfreds Futterkiste | Null |
Ana Trujillo Emparedados y helados | 10308 |
Antonio Moreno Taquería | Null |
توجه: دستور FULL JOIN
در SQL تمامی رکورد های انتخاب شده و منطبق را از هر دو جدول بر می گرداند ، یعنی اگر حتی ردیفی در جدول Customers
وجود داشته باشد که با ردیف دیگری در جدول Orders
مطابقت نداشته باشند باز هم لیست خواهند شد.
آیا این مطلب برای شما مفید بود ؟