Volledige outer join
Een van de jointypen die beschikbaar zijn in het dialoogvenster Samenvoegen in Power Query is een volledige outer join, die alle rijen uit zowel de linker- als rechtertabellen bevat. Meer informatie: Overzicht van samenvoegbewerkingen
Schermopname van een 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. Een rechtertabel bevat de kolommen Id en Land. De kolom met nadruk-id's bevat waarden van 1 in rij 1 (die de VS aangeeft), 2 in rij 2 (canada aangeeft), 3 in rij 3 (aantekenend Panama) en 4 (spanje aanduidt) in rij 4. Een tabel onder de eerste twee tabellen bevat de kolommen Date, CountryID, Units en Country. Alle rijen worden opnieuw gerangschikt in numerieke volgorde volgens de countryID-waarde. Het land dat is gekoppeld aan het CountryID-nummer wordt weergegeven in de kolom Land. Omdat de land-id voor Spanje niet is opgenomen in de linkertabel, wordt er een nieuwe rij toegevoegd en worden de waarden voor datum, land-id en eenheden voor deze rij ingesteld op null.
In dit artikel worden voorbeeldgegevens gebruikt om te laten zien hoe u een samenvoegbewerking kunt uitvoeren met de volledige outer 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.
Landen: Deze tabel is een referentietabel met de velden-id en Land. Het id-veld vertegenwoordigt de unieke id voor elke record.
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 hieronder te maken, waarbij de naam van het land wordt weergegeven als een nieuwe kolom Land in de tabel Verkoop . Omdat de volledige outer join werkt, worden alle rijen uit zowel de linker- als rechtertabellen binnengebracht, ongeacht of ze alleen in een van de tabellen worden weergegeven.
Schermopname van de uiteindelijke full outer join-tabel met Date, a CountryID en Units afgeleid van de tabel Sales en een kolom Country die is afgeleid van de tabel Landen. Er is een vijfde rij toegevoegd om gegevens uit Spanje te bevatten, maar die rij bevat null in de kolommen Date, CountryID en Units, omdat deze waarden niet bestonden voor Spanje in de tabel Verkoop.
Een volledige outer join uitvoeren:
- Selecteer de verkoopquery en selecteer vervolgens Samenvoegquery's.
- Selecteer In het dialoogvenster Samenvoegen, onder De tabel Rechts voor samenvoegen, Landen.
- Selecteer in de tabel Verkoop de kolom CountryID .
- Selecteer de kolom Id in de tabel Landen.
- Selecteer In de sectie Join kind de optie Volledig buitenste.
- Selecteer OK.
Notitie
U kunt samenvoegen op meer dan één kolom door Ctrl te selecteren en vervolgens de kolommen te selecteren.
Tip
Bekijk het bericht onder aan het dialoogvenster met de tekst 'De selectie komt overeen met 4 van 5 rijen uit beide tabellen'. Dit bericht is van cruciaal belang voor het begrijpen van het resultaat dat u krijgt van deze bewerking.
In de tabel Landen hebt u het land Spanje met id 4, maar er zijn geen records voor CountryID 4 in de tabel Verkoop . Daarom hebben slechts drie van de vier rijen uit de rechtertabel een overeenkomst gevonden. Alle rijen uit de rechtertabel die geen overeenkomende rijen uit de linkertabel hebben, worden gegroepeerd en weergegeven in een nieuwe rij in de uitvoertabel zonder waarden voor de velden uit de linkertabel.
Vouw vanuit de zojuist gemaakte kolom Landen na de samenvoegbewerking het veld Land uit. Schakel het selectievakje Oorspronkelijke kolomnaam als voorvoegsel gebruiken niet in.
Nadat u deze bewerking hebt uitgevoerd, maakt u een tabel die eruitziet als de volgende afbeelding.
Schermopname van de volledige outer join-uiteindelijke tabel met Datum, een CountryID en Eenheden die zijn afgeleid van de tabel Verkoop en een kolom Land die is afgeleid van de tabel Landen. Er is een vijfde rij toegevoegd om gegevens uit Spanje te bevatten, maar die rij bevat null in de kolommen Date, CountryID en Units, omdat deze waarden niet bestonden voor Spanje in de tabel Verkoop.