Узел Разность
Узел Разность генерирует таблицу данных, которая является дополнением к другой таблице данных. Чтобы понять логику узла Разность, можно вспомнить о диаграммах Венна.
В теории множеств дополнение – это ряд элементов, не принадлежащих данному множеству. В контексте баз данных под дополнением обычно понимается таблица с записями, которые не входят в другую таблицу. Например, предположим, что у нас есть 3 таблицы данных – А, В и С. Таблица B содержит некоторое подмножество записей из A; таблица C содержит остаток записей из таблицы A, которые не входят в B. Таблица C при этом называется дополнением B.
Уточним, что ни B, ни C не считаются дополнениями таблицы A. |
Узел Разность расположен в разделе Операции со строками в палитре узлов. Данный узел можно сравнить с узлом Фильтрация строк, поскольку он также создает подмножество записей из другой таблицы. Узел Разность не изменяет колонки таблицы данных.
Колонки в выходной таблице узла (в созданном узлом подмножестве записей) не отличаются от колонок исходной таблицы.
Пример создания дополнения к таблице данных
Для примера рассмотрим следующую таблицу данных (Таблица А):
Колонка A |
Колонка B |
Колонка C |
a |
1 |
2 |
b |
3 |
4 |
Предположим, что вам нужно отфильтровать некоторые записи из этой таблицы данных. Например, вам нужно создать таблицу, состоящую только из тех записей, в которых Колонка A содержала бы значение "а" (Таблица B).
Колонка A |
Колонка B |
Колонка C |
a |
1 |
2 |
Теперь предположим, что вам нужно найти все записи в Таблице A, которые не входят в Таблицу B. Для создания такой таблицы данных вы можете использовать узел Разность. Таблица будет выглядеть следующим образом:
Колонка A |
Колонка B |
Колонка C |
b |
3 |
4 |
Выбор между узлами Разность и Фильтрация строк
Бывают ситуации, когда можно использовать узел Фильтрация строк для получения тех же результатов, что и при работе с узлом Разность. Например, в описанном выше случае вы могли бы создать узел Фильтрация строк с выражением Column A = "a". Затем вы могли бы создать второй узел фильтрации строк с выражением Column A = "b". Второй узел Фильтрации строк выполнил бы ту же задачу, что и узел Разность.
Один из недостатков использования узла Фильтрация строк в этом случае выявляется при последующем использовании проекта. Например, если позже вам понадобится изменить условие, используемое в первом узле Фильтрация строк, вам придется изменить выражение и во втором узле. Вероятность ошибки в таком случае повышается.
Другой недостаток состоит в том, для узлов фильтрации строк вам, возможно, придется создать достаточно сложные выражения, а в сложных выражениях риск ошибки также велик.
Еще один недостаток узла фильтрации строк – в отсутствии гибкости. Узел Разность может создать дополнение на основе любых двух исходных таблиц. Узел не ограничен использованием той же таблицы данных, что и узел, с которым проводится сравнение. В этом состоит отличие: оба узла фильтрации строк должны использовать одну и ту же таблицу. Небольшое ограничение узла Разность состоит в том, что две таблицы данных, используемых узлом на входе, для правильной настройки узла должны иметь как минимум одну общую колонку.
Соединения на скрипте
Узел Разность должен быть на входе соединен с двумя узлами, создающими таблицы данных. Выходными данными узла является новая таблица данных, которая может быть использована любыми узлами, которые в качестве исходных данных принимают таблицу.
При настройке соединений необходимо указать роль обеих исходных таблиц данных. Одна из них является подмножеством (правое соединение), другая – супермножеством (левое соединение).
Порядок, в котором вы настраиваете соединения, не имеет значения.