Правое анти присоединение
Один из типов соединения, доступных в диалоговом окне слияния в 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 — это целое число, представляющее уникальный идентификатор из таблицы "Страны ".
Страны: это справочная таблица с идентификатором полей и страной. Поле идентификатора представляет уникальный идентификатор для каждой записи.
В этом примере вы объедините обе таблицы с таблицей Sales в виде левой таблицы и таблицы "Страны " в качестве правой. Соединение будет выполнено между следующими столбцами.
Поле из таблицы Sales | Поле из таблицы "Страны" |
---|---|
ИДстраны | id |
Цель состоит в том, чтобы создать таблицу, как показано ниже, где хранятся только строки из правой таблицы, которые не соответствуют ни одному из левой таблицы. В качестве распространенного варианта использования можно найти все строки, доступные в правой таблице, но не найдены в левой таблице.
Правая защита от соединения итоговой таблицы с столбцами заголовков Date, CountryID, Units и Country, содержащая одну строку со значением NULL во всех столбцах, кроме Страны, которая содержит Испанию.
Чтобы сделать правильное анти-соединение
- Выберите запрос "Продажи" и выберите "Объединить запросы".
- В диалоговом окне "Слияние" в правой таблице для слияния выберите "Страны".
- В таблице Sales выберите столбец CountryID.
- В таблице "Страны" выберите столбец идентификатора.
- В разделе "Тип соединения" выберите "Правый анти".
- Нажмите ОК.
Совет
Ознакомьтесь с сообщением в нижней части диалогового окна с надписью "Выбор исключает 1 из 2 строк из второй таблицы". Это сообщение имеет решающее значение для понимания результата, полученного из этой операции.
В таблице "Страны" у вас есть страна Испания с идентификатором 4, но нет записей для CountryID 4 в таблице Sales. Вот почему только одна из двух строк из правой (второй) таблицы обнаружила совпадение. Из-за того, как работает правое антиприсоединения, вы никогда не увидите строки из левой (первой) таблицы в выходных данных этой операции.
В созданном столбце "Страны" разверните поле "Страна ". Не выбирайте имя исходного столбца в качестве префикса проверка поле.
После выполнения этой операции вы создадите таблицу, которая выглядит следующим образом. Только что развернутое поле "Страна" не имеет никаких значений . Это связано с тем, что правое антиединое соединение не приносит никаких значений из левой таблицы. Она сохраняет только строки из правой таблицы.
Окончательная таблица с столбцами заголовка Date, CountryID, Units и Country, содержащая одну строку со значением NULL во всех столбцах, кроме country, которая содержит Испанию.