Таблиця результатів (внутрішнього; повного зовнішнього, лівого зовнішнього, правого зовнішнього) з’єднання.
Girls. Prizv
Girls. Misto
Boys. Prizv
Boys. Misto
Баба
Борислав
Дід
Борислав
Баба
Борислав
Іванов
Борислав
Жучка
Дрогобич
Сідоров
Дрогобич
Кішка
Дрогобич
Сідоров
Дрогобич
Внучка
NULL
NULL
NULL
Мишка
Трускавець
NULL
NULL
NULL
NULL
Петров
NULL
NULL
NULL
Колобок
Стебник
Назва з’єднання
Множина рядків в таблиці результатів
Позначення в стандарті SQL2
Внутрішнє з’єднання:
[INNER] JOIN
Ліве (зовнішнє) з’єднання:
LEFT [OUTER] JOIN
Праве (зовнішнє) з’єднання:
RIGHT [OUTER]
JOIN
Повне зовнішнє з’єднання:
FULL [OUTER] JOIN
Розширений запит на з’єднання:
UNION JOIN
Перехрестя з’єднання:
декартовий добуток
Girls Boys
- 4 стовпчики
25 рядків (внутрішнє з’єднання без умови відбору)
CROSS JOIN
Внутрішнє з’єднання дасть чотири рядки в таблиці результатів запиту – їм відповідають мітки в таблицях Girls та Boys та мітки в таблиці результатів.
Зверніть увагу, що двоє дівчат (Внучка і Мишка) і двоє хлопців (Петров і Колобок) не представлені в таблиці результатів внутрішнього з’єднання – бо ці рядки не мають пари в іншій таблиці і тому відчутні в таблиці результатів.
Два незв’язних рядки (Мишка і Колобок) мають конкретні значення в стовпчиках Misto, але вони не співпадають з жодним містом в іншій таблиці.
Два інших незв’язних рядка (Внучка і Петров) мають значення NULL в стовпчиках Misto, а за правилами SQL значення NULL не дорівнюють ніякому іншому значенню (навіть іншому значенню NULL).
Нехай потрібно вивести список пар дівчина/хлопець, які живуть в одних і тих самих містах і включити в нього всіх дівчат і хлопців, які не мають відповідної пари.
Цей результат дає повне зовнішнє з’єднання таблиць Girls і Boys.
Схема побудови зовнішнього з’єднання
Створити внутрішнє з’єднання двох таблиць
звичайним способом.
Кожний рядок першої таблиці, який не має
зв’язку з жодним рядком другої таблиці,
добавити в результати запиту, присвоюючи
всім стовпчикам другої таблиці значення NULL.
Кожний рядок другої таблиці, який не має
зв’язку з жодним рядком першої таблиці,
добавити в результати запиту, присвоюючи всім
стовпчикам першої таблиці значення NULL.
Результуюча таблиця і буде зовнішнім з’єднанням двох
таблиць.
Пунктам і наведеної Схеми побудови зовнішнього з’єднання відповідають мітки для рядків таблиць Girls, Boys та Таблиці результатів з’єднання.
Ось оператор SELECT, який приводить до зовнішнього з’єднання:
72). Вивести список дівчат і хлопців, які живуть в одних і тих самих містах, включаючи тих дівчат і хлопців, хто не має пари.
72). SELECT *
FROM Girls, Boys
WHERE Girls.Misto *=* Boys.Misto
Зауваження – цей запит використовує операцію *=*, яка визначає зовнішнє з’єднання в MS SQL Server. Цієї операції немає в інших СУБД.