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


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

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

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

Схема, показывающая левую таблицу с столбцами 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, а для страны задано значение "Испания".

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

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

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

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

    Снимок экрана таблицы стран, где в строке 1 идентификатор установлен на 3, а в строке 2 — на 4, и страна установлена на Панаму в строке 1 и Испанию в строке 2.

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

Поле из таблицы Sales Поле из таблицы "Страны"
CountryID ИДЕНТИФИКАТОР

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

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

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

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

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

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

Совет

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

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

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

снимок экрана: развернутый столбец

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

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

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