Delen via


Anti-join links

Een van de jointypen die beschikbaar zijn in het dialoogvenster Samenvoegen in Power Query is een linker anti-join, die alleen rijen uit de linkertabel bevat die geen overeenkomende rijen uit de rechtertabel bevatten. Meer informatie: Overzicht van samenvoegbewerkingen

Voorbeeld van links anti-join.

Diagram toont de linkertabel met de kolommen Date, CountryID en Units. De kolom CountryID met nadruk bevat waarden van 1 in rij 1 en 2, 3 in rij 3 en 2 in rij 4. De rechtertabel bevat de kolommen Id en Land. De kolom met nadruk-id's bevat waarden van 3 in rij 1 (die Panama aangeeft) en 4 in rij 2 (die Spanje aangeeft). Een tabel onder de eerste twee tabellen bevat de kolommen Date, CountryID, Units en Country. De tabel heeft drie rijen, met twee rijen met de gegevens voor CountryID 1 en één rij voor CountryID 2. Omdat geen van de resterende land-id's overeenkomt met een van de landen/regio's in de rechtertabel, bevatten de rijen in de kolom Land in de samengevoegde tabel allemaal null.

In dit artikel worden voorbeeldgegevens gebruikt om te laten zien hoe u een samenvoegbewerking kunt uitvoeren met de linker anti-join. De voorbeeldbrontabellen voor dit voorbeeld zijn:

  • Verkoop: Deze tabel bevat de velden Datum, Land-id en Eenheden. CountryID is een geheel getal dat de unieke id van de tabel Landen vertegenwoordigt.

    Schermopname van de verkooptabel met de kolommen Date, CountryID en Units, waarbij CountryID is ingesteld op 1 in rij 1 en 2, 3 in rij 3 en 2 in rij 4.

  • Landen: Deze tabel is een referentietabel met de velden-id en Land. Het id-veld vertegenwoordigt de unieke id voor elke record.

    Schermopname van de landentabel met id ingesteld op 3 in rij 1 en 4 in rij 2 en Land ingesteld op Panama in rij 1 en Spanje in rij 2.

In dit voorbeeld voegt u beide tabellen samen met de tabel Sales als de linkertabel en de tabel Landen als de rechtertabel. De join wordt gemaakt tussen de volgende kolommen.

Veld uit de tabel Sales Veld uit de tabel Landen
CountryID Id

Het doel is om een tabel zoals de volgende te maken, waarbij alleen de rijen uit de linkertabel die niet overeenkomen met een van de rechtertabel, worden bewaard.

Linker anti-join laatste tabel.

Schermopname van de laatste tabel voor anti-join links met kolomkoppen Date, CountryID, Units en Country, en drie rijen met gegevens waarvan de waarden voor de kolom Land allemaal null zijn.

Een linker anti-join uitvoeren:

  1. Selecteer de verkoopquery en selecteer vervolgens Samenvoegquery's.
  2. Selecteer In het dialoogvenster Samenvoegen, onder De tabel Rechts voor samenvoegen, Landen.
  3. Selecteer in de tabel Verkoop de kolom CountryID .
  4. Selecteer de kolom Id in de tabel Landen.
  5. Selecteer links in de sectie Soort join.
  6. Selecteer OK.

Schermopname van het dialoogvenster Samenvoegen met de resultaten van het volgen van de vorige anti-joinprocedure links.

Tip

Bekijk het bericht onder aan het dialoogvenster met de tekst 'De selectie selecteert 3 van 4 rijen uit de eerste tabel'. Dit bericht is van cruciaal belang om inzicht te krijgen in het resultaat dat u krijgt van deze bewerking.

In de tabel Verkoop hebt u twee exemplaren van een CountryID van 1 en één exemplaar van een CountryID van 2, maar geen van beide zijn te vinden in de tabel Landen . Daarom heeft de overeenkomst drie van vier rijen in de linkertabel (eerste tabel) gevonden.

In de tabel Landen hebt u het Land Panama met een id van 3, zodat de record niet in de tabel Verkoop wordt gebracht omdat de getallen overeenkomen. Daarnaast hebt u een Land Spanje met een id van 4, maar er zijn geen records voor CountryID 4 in de tabel Verkoop . Daarom worden geen van de twee rijen uit de rechtertabel (tweede) naar de tabel Sales gebracht.

Vouw vanuit de zojuist gemaakte kolom Landen het veld Land uit. Schakel het selectievakje Oorspronkelijke kolomnaam als voorvoegsel gebruiken niet in.

Schermopname van het dialoogvenster Uitvouwen met alleen de kolom Land geselecteerd.

Nadat u deze bewerking hebt uitgevoerd, hebt u een tabel gemaakt die eruitziet als de volgende afbeelding. Het zojuist uitgevouwen veld Land heeft geen waarden omdat de linker anti-join geen waarden uit de rechtertabel bevat, maar alleen rijen uit de linkertabel bewaart.

Laatste tabel voor linker anti-join.

Schermopname van de laatste tabel met kolomkoppen Date, CountryID, Units en Country, en drie rijen met gegevens. De waarden voor de kolom Land zijn allemaal null.