Об'єднання рядків оператором FULL OUTER JOIN в SQL-запиті

Матеріал представлений на сторінці взятий з ресурсу http://www.w3schools.com/sql/


Ключове слово FULL OUTER JOIN повертає всі дані як з лівої таблиці так і з правої таблиці.

Синтаксис SQL-запиту:

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

PS в деяких Базах ДанихRIGHT JOIN теж саме, що і RIGHT OUTER JOIN.

обєднання даних таблиць

Приклад Бази Даних

Таблиця "Customers"(Споживачі).

IDCustomerNameContactNameAddress
1Alfreds FutterkisteMaria AndersObere Str. 57
2Ana TrujilloAna TrujilloConstitucion 2222
3Antonio MorenoAntonio MorenoMataderos 2312

Таблиця Orders.

OrderIDCustomerIDOrderDate
1030821996-09-18
10309371996-09-19
10310771996-09-20

Приклад 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 10308
Antonio Moreno Taquería 10365
  10382
  10351

Зауважте: Оператор FULL OUTER JOIN повертає всі рядки з лівої таблиці "Customers"(Споживачі), та всі записи з правої таблиці Orders(замовлення). Якщо рядок з таблиці "Customers" не має відповідного рядка в таблиці "Orders", чи навпаки рядок з таблиці "Orders" не має відповідного з таблиці "Customers", то він залишається пустим.