گروه مقاله : SQL Server
تاريخ انتشار : 1394/02/02 - 15:58
كد :231
کلید واژه FULL JOIN تمام ردیف های موجود در جداول را با وجود حتی یک همخوانی میان جداول بر می گرداند.
FULL OUTER JOIN لیست تمام سطرها از جدول سمت چپ (table1) و از جدول سمت راست (table2) را به ما می دهد و نتیجه پیوندهای سمت چپ و راست را با هم ترکیب می کند.
فرم عبارت FULL OUTER JOIN SQL :
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;
نسخه نمایشی پایگاه داده :
در این آموزش ما از نمونه ی پایگاه داده معروف Northwind استفاده می کنیم.
در زیر بخشی از جدول "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 زیر لیست تمام مشتریان و سفارشات را به ما می دهد :
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
و بخشی از جدول نتایج ممکن است به این صورت باشد :
CustomerName |
OrderID |
Alfreds Futterkiste |
|
Ana Trujillo Emparedados y helados |
10308 |
Antonio Moreno Taquería |
10365 |
|
10382 |
|
10351 |
نکته : FULL OUTER JOIN لیست تمام سطرها از جدول سمت چپ (Customers) و تمام سطرها از جدول سمت راست (Orders) را به ما می دهد.اگر در جدول "Customers" سطرهایی وجود باشد که مطابقتی برای آنها در جدول "Orders" نباشد،و یا اگر عکس این قضیه باشد یعنی سطرهایی در جدول "Orders" وجود داشته باشد که مطابقتی برای آنها در جدول "Customers" نباشد، آن سطرها نیز در لیست خواهند آمد.