Назначение
Последовательно присоединяет к основной таблице от 1 до 31 дополнительного источника. Каждый следующий вход сопоставляется с уже полученным результатом. Подходит для справочников, тарифов, атрибутов товаров и сопоставления факта с планом.
Входы и выходы
От 2 до 32 именованных входов. out содержит поля с префиксами-псевдонимами, например a.Product и b.Category.
Параметры
| Параметр | Настройки и значения | Варианты и ограничения |
|---|---|---|
inputs | Именованные входы, каждый с отдельным подключением. | Количество: 2–32 |
decimal | Десятичный разделитель числовых значений во входных данных. | Варианты: ., ,По умолчанию: . |
nulls_equal | Разрешить совпадение NULL с NULL в ключах. По умолчанию пустые ключи не совпадают. | По умолчанию: disabled |
Свойства каждого входа
| Параметр | Что настраивает |
|---|---|
id / label | Постоянный идентификатор порта и понятное пользователю имя. |
alias | Уникальный префикс столбцов; обязателен и для первого входа. |
how | Режим соединения для каждого входа после первого. |
keys | Пары left/right с признаком numeric; до 32 пар. |
cardinality | Ожидаемая уникальность ключей для проверки структуры данных. |
Пошаговая настройка
- Используйте основную таблицу первым входом с псевдонимом a. Присвойте справочнику псевдоним b.
- Для каждого следующего входа выберите inner/left/right/full.
- Добавьте пары ключей: левое поле с псевдонимом уже присоединённого входа и правое поле текущего источника.
- Выберите ожидаемую уникальность; для обычного справочника обычно подходит many_to_one.
- Проверьте количество строк, пустые поля и возможное размножение строк из-за повторяющихся ключей.
Правила и диагностика
- inner оставляет только совпадения; left — все левые строки; right — все правые; full — все строки обеих сторон. Отсутствующая сторона заполняется NULL.
- many_to_one требует уникальности правых ключей; one_to_many — левых; one_to_one — обеих сторон; many_to_many разрешает повторы с обеих сторон. Нарушение вызывает JOIN_CARDINALITY.
- При нескольких ключах должна совпасть каждая пара. Числовой режим настраивается для каждой пары отдельно.
- Повторы с обеих сторон создают все совпадающие комбинации и могут значительно увеличить результат. Слишком большой результат останавливается ограничением ячеек.
Пример настройки
Соедините продажи a с ProductCode и Value со справочником b, содержащим Code и Category. Задайте how=left, ключ a.ProductCode=b.Code и cardinality=many_to_one. Продажи без совпадения в справочнике сохранятся с b.Category=NULL.