Sdílet prostřednictvím


Pravé anti join

Jedním z typů spojení dostupných v dialogovém okně Sloučit v Power Query je pravé anti spojení, které přináší pouze řádky z pravé tabulky, které nemají žádné odpovídající řádky z levé tabulky. Další informace: Přehled operací sloučení

Příklad pravého anti joinu

Obrázek znázorňuje tabulku vlevo se sloupci Date, CountryID a Units( Datum, CountryID a Units). Zvýrazněný sloupec CountryID obsahuje hodnoty 1 v řádcích 1 a 2, 3 v řádku 3 a 2 v řádku 4. Tabulka vpravo obsahuje sloupce ID a Země. Zvýrazněný sloupec ID obsahuje hodnoty 3 v řádku 1 (označující Panama) a 4 na řádku 2 (označující Španělsko). Tabulka pod prvními dvěma tabulkami obsahuje sloupce Datum, CountryID, Units a Country. Tabulka obsahuje jeden řádek s datem, CountryID a Units nastaveným na hodnotu null a země nastavenou na Španělsko.

Tento článek používá ukázková data k zobrazení, jak provést operaci sloučení se správným anti join. Ukázkové zdrojové tabulky pro tento příklad jsou:

  • Sales: Tato tabulka obsahuje pole Datum, CountryID a Units. CountryID je celá číselná hodnota, která představuje jedinečný identifikátor z tabulky Countries .

    Tabulka Sales obsahující sloupce Datum, CountryID a Units s ID země nastavenou na 1 v řádcích 1 a 2, 3 v řádku 3 a 2 v řádku 4.

  • Země: Jedná se o referenční tabulku s ID polí a zemí. Pole ID představuje jedinečný identifikátor každého záznamu.

    Tabulka zemí s ID nastavenou na 3 v řádku 1 a 4 v řádku 2 a Země nastavena na Panama v řádku 1 a Španělsko na řádku 2.

V tomto příkladu sloučíte obě tabulky s tabulkou Sales jako levou a tabulkou Countries (Země ) jako pravou tabulkou. Spojení bude provedeno mezi následujícími sloupci.

Pole z tabulky Sales Pole z tabulky Země
CountryID ID

Cílem je vytvořit tabulku jako v následujícím příkladu, kde jsou zachovány pouze řádky z pravé tabulky, které se neshodují s žádnou z levé tabulky. Běžným případem použití můžete najít všechny řádky, které jsou k dispozici v pravé tabulce, ale nejsou v levé tabulce nalezeny.

Tabulka vytvořená z pravého anti join

Pravá anti join final table with the Date, CountryID, Units, and Country header columns, contains one row with null in all columns except Country, which contains Spain.

Postup správného anti joinu

  1. Vyberte dotaz Sales (Prodej) a pak vyberte Merge queries (Sloučit dotazy).
  2. V dialogovém okně Sloučit v části Pravá tabulka pro sloučení vyberte Země.
  3. V tabulce Sales (Prodej) vyberte sloupec CountryID (CountryID).
  4. V tabulce Země vyberte sloupec ID.
  5. V části Druh spojení vyberte Pravý anti.
  6. Vyberte OK.

Slučovací dialogové okno zobrazující výsledky následující předchozí pravé anti join procedury.

Tip

Podívejte se blíže na zprávu v dolní části dialogového okna, která obsahuje text "Výběr vyloučí z druhé tabulky 1 ze 2 řádků". Tato zpráva je zásadní pro pochopení výsledku, který z této operace získáte.

V tabulce Countries (Země) máte Země Španělsko s ID 4, ale v tabulce Sales (Prodej) nejsou žádné záznamy pro CountryID 4. To je důvod, proč pouze jeden ze dvou řádků z pravé (druhé) tabulky zjistil shodu. Vzhledem k tomu, jak funguje správné anti join, nikdy neuvidíte žádné řádky z levé (první) tabulky ve výstupu této operace.

Z nově vytvořeného sloupce Země rozbalte pole Země . Nezaškrtávejte políčko Použít původní název sloupce jako předponu .

Rozbalení sloupce tabulky pro zemi

Po provedení této operace vytvoříte tabulku, která vypadá jako na následujícím obrázku. Nově rozbalené pole Země neobsahuje žádné hodnoty. Je to proto, že pravé anti join nepřináší žádné hodnoty z levé tabulky – zachová jenom řádky z pravé tabulky.

Pravá konečná tabulka s anti join.

Konečná tabulka se sloupci záhlaví Date, CountryID, Units a Country obsahující jeden řádek s hodnotou null ve všech sloupcích kromě země, která obsahuje Španělsko.