Полное слияние Полное соединение

Аналогом данного способа слияния являются SQL-операторы CROSS JOIN и FULL JOIN.

CROSS JOIN

При CROSS JOIN соединении производится перекрестное соединение (или декартово произведение) — каждая строка одной таблицы соединяется с каждой строкой второй таблицы, давая тем самым в результате все возможные сочетания строк двух таблиц. При таком соединении порядок таблиц (левая, правая) неважен, и отсутствует необходимость в сопоставлении ключевых полей.

Пример:

Для примера возьмем две таблицы. Персона - главная таблица и присоединяемою Город.

Главная таблица:

Имя Id города
Андрей 1
Леонид 2
Сергей 1
Григорий 4

Присоединяемая таблица:

Id Город
1 Москва
2 Санкт-Петербург
3 Казань
Связь
Рисунок 1. Связь

Результирующая таблица:

Имя Id города Город
Андрей 1 Москва
Андрей 1 Санкт-Петербург
Андрей 1 Казань
Леонид 2 Москва
Леонид 2 Санкт-Петербург
Леонид 2 Казань
Сергей 1 Москва
Сергей 1 Санкт-Петербург
Сергей 1 Казань
Григорий 4 Москва
Григорий 4 Санкт-Петербург
Григорий 4 Казань

FULL JOIN

При FULL JOIN соединении производится полное внешнее соединение двух наборов. В результирующий набор добавляются следующие записи:

  1. Внутреннее соединение (INNER JOIN) первой и второй таблиц;
  2. Записи первой таблицы, которые не вошли во внутреннее соединение на шаге 1. Для таких записей поля, соответствующие второй таблице, заполняются значениями NULL;
  3. Записи второй таблицы, которые не вошли во внутреннее соединение на шаге 1. Для таких записей поля, соответствующие первой таблице, заполняются значениями NULL.

При таком соединении необходимо сопоставление ключевых полей, но порядок таблиц (левая, правая) неважен.

Пример:

Для примера возьмем две таблицы. Персона - главная таблица и присоединяемою Город.

Главная таблица:

Имя Id города
Андрей 1
Леонид 2
Сергей 1
Григорий 4

Присоединяемая таблица:

Id Город
1 Москва
2 Санкт-Петербург
3 Казань
Связь
Рисунок 2. Связь

Результирующая таблица:

Имя Id города Город
Андрей 1 Москва
Леонид 2 Санкт-Петербург
Сергей 1 Москва
<null> <null> Казань
Григорий 4 <null>

Важно: Для того, чтобы при способе слияния Полное соединение использовать FULL JOIN соединение, необходимо в мастере настройки сопоставить ключевые поля соединяемых наборов. Если сопоставление отсутствует, то задействуется алгоритм CROSS JOIN соединения. При данном способе слияния объем результирующей выборки может очень быстро расти.

results matching ""

    No results matching ""