Join | Qlik Cloud Справка
Перейти к основному содержимому Перейти к дополнительному содержимому

Join

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

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

video thumbnail

Типы объединений

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

  • Left join (левое объединение)

  • Inner join (внутреннее объединение)

  • Outer join (внешнее объединение)

  • Right join (правое объединение)

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

Примеры результирующих наборов данных от различных типов операций объединения с представлением таблиц данных до и после каждой операции. Входные данные состоят из целевой таблицы и входящего набора данных. Целевая таблица имеет два столбца с двумя записями строк для полей 'Trade ID' и 'Asset Class'. Входящие данные имеют два столбца с двумя записями строк для полей 'Trade ID' и 'Exchange'. Left Join сохраняет исходную целевую таблицу и добавляет третий столбец, где все пусто, кроме добавления одной из записей строк 'Exchange'. Inner Join создает таблицу с одной строкой Trade ID и третьим столбцом, опять же, для записи строки 'Exchange'. Outer Join сохраняет целевую таблицу и добавляет третий столбец, а также третью строку, к которой добавляется вторая строка входящего набора данных. Right Join удаляет вторую запись строки целевой таблицы и заменяет ее информацией из второй записи строки входящего набора данных, добавляя при этом третий столбец.

Left join

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

Left join

Диаграмма, описывающая на высоком уровне комбинации данных, которые происходят во время левого объединения.

Inner join

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

Inner join

Диаграмма, описывающая на высоком уровне комбинации данных, которые происходят во время внутреннего объединения.

Outer join (по умолчанию)

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

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

Outer join

Диаграмма, описывающая на высоком уровне комбинации данных, которые происходят во время внешнего объединения.

Right join

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

Right join

Диаграмма, описывающая на высоком уровне комбинации данных, которые происходят во время правого объединения.

Cross join

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

Пример результирующего набора от операции "cross join"

Сравнение входных данных до и после операции перекрестного объединения (которая может включать операцию объединения любого типа). Входные данные — это целевая таблица и входящий набор данных. Целевая таблица состоит из трех столбцов с двумя записями строк. Столбцы: 'Trade ID', 'Base Currency' и 'Amount'. Входящий набор данных имеет два столбца ('Trade Currency' и 'Rate') и две записи строк. Результирующая таблица имеет пять столбцов: 'Trade ID', 'Base Currency', 'Amount', 'Target Currency' и 'Rate'. Есть четыре записи строк, объединяющие все данные. Каждая запись 'Trade ID' имеет две строки с разными данными в других полях.

Синтаксис и аргументы

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

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

Связанные разделы

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

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

Примеры скрипта загрузки - Left join

Left join сохраняет все записи из вашей основной (целевой) таблицы и добавляет соответствующие данные из второй (исходной) таблицы. Если в источнике нет совпадения, запись основной таблицы все равно отображается, но с пустыми полями из исходной таблицы.

Примеры скрипта загрузки - Inner join

Inner join сохраняет только записи, которые существуют в обеих таблицах (на основе совпадающих значений полей).

Примеры скрипта загрузки - Outer join

Outer join сохраняет все записи из обеих таблиц. Там, где нет совпадения, поля остаются пустыми.

Примеры скрипта загрузки - Right join

Right join сохраняет все записи из исходной таблицы и добавляет соответствующую информацию из целевой таблицы. Если в целевой таблице нет совпадения, поля из нее остаются пустыми.

Устранение неполадок - Cross join

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

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