Перейти к основному содержимому Перейти к дополнительному содержимому

Join

Префикс join объединяет загруженную таблицу с существующей таблицей, для которой задано имя, или с последней созданной таблицей данных.

Эффект объединения данных заключается в расширении целевой таблицы дополнительным набором полей или атрибутов, а именно теми, которых еще нет в целевой таблице. Любые общие имена полей между исходным набором данных и целевой таблицей используются для определения того, как связать новые входящие записи. Это обычно называют «естественным соединением». Операция Qlik соединения может привести к тому, что результирующая целевая таблица будет иметь больше или меньше записей, чем она содержала в начале, в зависимости от уникальности ассоциации соединения и используемого типа соединения.

Существует четыре типа соединений:

Левые соединения являются наиболее распространенным типом соединений. Например, если имеется набор данных о транзакциях и требуется объединить его со справочным набором данных, обычно используется Left Join. Сначала загружается таблица транзакций, а затем справочный набор данных, который присоединяется через префикс Left Join к уже загруженной таблице транзакций. Left Join сохранит все транзакции как есть и добавит дополнительные поля справочных данных, где найдено совпадение.

Если имеется два набора данных, где вас интересуют только результаты, в которых есть совпадающая связь, попробуйте использовать Inner Join. Это приведет к удалению всех записей как из загруженных исходных данных, так и из целевой таблицы, если совпадений не будет найдено. В результате в целевой таблице может остаться меньше записей, чем было до выполнения операции соединения.

Если требуется сохранить как целевые записи, так и все входящие записи, используйте Outer Join. Если совпадений не найдено, каждый набор записей по-прежнему сохраняется, а поля с противоположной стороны объединения остаются незаполненными (null).

Если ключевое слово type опущено, внешнее соединение является типом соединения по умолчанию.

Этот тип соединения сохраняет все записи, которые должны быть загружены, при этом количество записей в целевой таблице объединения, сокращается, так как включаются только те записи, для которых есть совпадающая связь во входящих записях. Это нишевый тип соединения, который иногда используется как средство сокращения предварительно загруженной таблицы записей до требуемого подмножества.

Примеры наборов результатов для различных типов операции соединения

Примеры наборов результатов для различных типов операции соединения с представлением таблиц данных до и после каждой операции.
Примечание к информацииЕсли между исходной и целевой таблицей операции соединения нет общих имен полей, результатом соединения будет декартово произведение всех строк — это называется «перекрестным соединением».

Пример набора результатов операции «перекрестное соединение»

Сравнение входных данных с выходными данными после операции перекрестного соединения (которая может включать операцию соединения любого типа): до и после.

Синтаксис:  

[inner | outer | left | right ]Join [ (tablename ) ]( loadstatement | selectstatement )

Аргументы
Аргумент Описание
tablename Будет выполнено сравнение именованной таблицы с загруженной таблицей.
loadstatementили selectstatement Оператор LOAD или SELECT для загруженной таблицы.

Эти темы помогут вам в работе с этой функцией:

Связанные темы
Тема Описание
Объединение таблиц с помощью операторов Join и Keep В этом разделе дается дальнейшее объяснение понятий «соединения» (Join) и «сохранения» (Keep) наборов данных.
Keep Префикс загрузки Keep подобен префиксу Join, но он не соединяет исходный и целевой наборы данных. Вместо этого он обрезает каждый набор данных в соответствии с типом принятой операции (внутреннее, внешнее, левое или правое соединение).

Пример 1. Левое соединение: дополнение целевой таблицы справочным набором данных

Пример 2. Внутреннее соединение: соединение только совпадающих записей

Пример 3. Внешнее соединение: соединение перекрывающихся наборов записей

Пример 4. Правое соединение: сокращение целевой таблицы вторичным основным набором данных

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!