TOP

SQL FULL OUTER JOIN Keyword

SQL FULL OUTER JOIN Описание

Ключевое слово FULL OUTER JOIN возвращает все записи, если есть соответствие в левых (table1) или правых (table2) записях таблицы.


Инструкции 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

SQL FULL JOIN

Демонстрационная база данных

В этом справочнике мы будем использовать известный пример базы данных "Northwind".

Ниже приведена выборка из таблицы "Customers" ("Клиенты"):

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

И выборку из таблицы "Orders" ("Заказ"):

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082
4102518431996-07-081
5102527641996-07-092

SQL FULL OUTER JOIN Пример

Следующая SQL-инструкция выбирает всех клиентов и все заказы:

Run SQLSELECT Customers.CustomerName, Orders.OrderID 
FROM Customers 
FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID 
ORDER BY Customers.CustomerName

Выборка из набора результатов может выглядеть следующим образом:

CustomerName OrderID
Null 10309
Null 10310
Alfreds Futterkiste Null
Ana Trujillo Emparedados y helados 10308
Antonio Moreno Taquería Null
Ключевое слово FULL OUTER JOIN возвращает все соответствующие записи из обеих таблиц независимо от того, соответствует другая таблица или нет. Следовательно, если есть строки в "Customers" ("Клиенты"), не имеющие совпадений в "Orders" ("Заказ"), или если есть строки в "Заказах", не имеющие совпадений в "Клиентах", эти строки также будут перечислены.