Поделиться через


Правое анти присоединение

Один из типов соединения, доступных в диалоговом окне слияния в Power Query, — это правое анти соединение, которое содержит только строки из правой таблицы, в которой отсутствуют соответствующие строки из левой таблицы. Дополнительные сведения: обзор операций слияния

Правый пример защиты от соединения.

На рисунке показана таблица слева с столбцами Date, CountryID и Units. Выделенный столбец CountryID содержит значения 1 в строках 1 и 2, 3 в строке 3 и 2 в строке 4. Таблица справа содержит столбцы ID и Country. Выделенный столбец идентификатора содержит значения 3 в строке 1 (обозначающая Панаму) и 4 в строке 2 (обозначающая Испанию). Таблица под первой таблицей содержит столбцы Date, CountryID, Units и Country. В таблице имеется одна строка, а для параметра Date, CountryID и Units задано значение NULL, а для страны задано значение "Испания".

В этой статье используются примеры данных, чтобы показать, как выполнить операцию слияния с правильным антиприсоединения. Примеры исходных таблиц для этого примера:

  • Продажи: эта таблица содержит поля Date, CountryID и Units. CountryID — это целое число, представляющее уникальный идентификатор из таблицы "Страны ".

    Таблица продаж, содержащая столбцы Date, CountryID и Units, с идентификатором countryID, равным 1 в строках 1 и 2, 3 в строке 3 и 2 в строке 4.

  • Страны: это справочная таблица с идентификатором полей и страной. Поле идентификатора представляет уникальный идентификатор для каждой записи.

    Таблица стран с идентификатором, равным 3 в строке 1 и 4 в строке 2 и страна, в строке 1 и Испании в строке 2.

В этом примере вы объедините обе таблицы с таблицей Sales в виде левой таблицы и таблицы "Страны " в качестве правой. Соединение будет выполнено между следующими столбцами.

Поле из таблицы Sales Поле из таблицы "Страны"
ИДстраны id

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

Таблица, созданная из правого антиприсоединения.

Правая защита от соединения итоговой таблицы с столбцами заголовков Date, CountryID, Units и Country, содержащая одну строку со значением NULL во всех столбцах, кроме Страны, которая содержит Испанию.

Чтобы сделать правильное анти-соединение

  1. Выберите запрос "Продажи" и выберите "Объединить запросы".
  2. В диалоговом окне "Слияние" в правой таблице для слияния выберите "Страны".
  3. В таблице Sales выберите столбец CountryID.
  4. В таблице "Страны" выберите столбец идентификатора.
  5. В разделе "Тип соединения" выберите "Правый анти".
  6. Нажмите ОК.

Диалоговое окно слияния с результатами предыдущей процедуры защиты от соединения.

Совет

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

В таблице "Страны" у вас есть страна Испания с идентификатором 4, но нет записей для CountryID 4 в таблице Sales. Вот почему только одна из двух строк из правой (второй) таблицы обнаружила совпадение. Из-за того, как работает правое антиприсоединения, вы никогда не увидите строки из левой (первой) таблицы в выходных данных этой операции.

В созданном столбце "Страны" разверните поле "Страна ". Не выбирайте имя исходного столбца в качестве префикса проверка поле.

Разверните столбец таблицы для страны.

После выполнения этой операции вы создадите таблицу, которая выглядит следующим образом. Только что развернутое поле "Страна" не имеет никаких значений . Это связано с тем, что правое антиединое соединение не приносит никаких значений из левой таблицы. Она сохраняет только строки из правой таблицы.

Правая защита от соединения окончательной таблицы.

Окончательная таблица с столбцами заголовка Date, CountryID, Units и Country, содержащая одну строку со значением NULL во всех столбцах, кроме country, которая содержит Испанию.