1. Главная
  2. Документы
  3. Источники данных
  4. Присоединение данных
  5. FullJoin

FullJoin

Выполняет полное внешнее соединение.

Дополнительное описание:

Результатом полного внешнего соединения является таблица, которая включает строки, которые являются результатом внутреннего (аналогично LeftJoin) соединения, плюс строки первой таблицы, не удовлетворяющие условию соединения (в этих строках значения в столбцах второй таблицы заполняются нулем), и строки второй таблицы, которые не удовлетворяют условию соединения (в этих значениях строк в столбцах первой таблицы заполняются нулевыми значениями). В результирующую таблицу включаются только настроенные в функции fieldName1, … , fieldNameN поля.

Формат:

FullJoin (tempTable, fieldName1 as alias1, … , fieldNameN as aliasN, joinCondition)

Параметры:

  • tempTable — имя присоединяемой таблицы: $result_1, $result_2 и так далее.
  • fieldName1, … , fieldNameN — имена результирующих полей. Поля, включенные в основную таблицу, обозначаются просто по имени. Поля присоединяемой таблицы вводятся с именем таблицы: result_1.product, result_1.amount.
  • alias1, … , aliasN — при необходимости можно задать псевдонимы полей.
  • joinCondition — условия соединения: result_1.product = product. В условиях можно использовать «and» или «or» для сложных условий.

Возвращаемый тип данных:

Таблица

Пример:

Сотрудники | Last (сотрудник, ставка);
Выработка | GroupBy (сотрудник, часы) | FullJoin ($result_1, сотрудник, часы, result_1.ставка as ставка, сотрудник = result_1.сотрудник) | Compute (зарплата, ставка * часы)

full-join.png
Рисунок 1. Пример FullJoin

Комментарии к примеру. Выбираем ставки сотрудников из Журнала Ставки, помещаем во временную таблицу $result_1. Затем выбираем отработанные часы сотрудников из Журнала Расписание. Выполняем левое соединение по условию сопоставления по сотруднику. Затем рассчитываем заработную плату.