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 rechtertabel 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 benadrukte ID-kolom bevat waarden van 1 in rij 1 (die de VS aangeeft), 2 in rij 2 (die Canada aangeeft), 3 in rij 3 (die Panama aangeeft), en 4 in rij 4 (die Spanje aangeeft). 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:
Sales: deze tabel bevat de velden Date, CountryIDen Eenheden. CountryID is een geheel getal dat de unieke identificatie van de Landen-tabel vertegenwoordigt.
landen: deze tabel is een referentietabel met de velden id en land. Het -id--veld vertegenwoordigt het unieke identificatienummer voor elk record.
In dit voorbeeld voegt u beide tabellen samen met de tabel Sales als de linkertabel en de tabel Landen als de rechtertabel. De koppeling 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 Sales. 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 Datum, een CountryID en Units afgeleid van de tabel Sales en een kolom Country die is afgeleid van de tabel Countries. 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 query Sales en selecteer vervolgens Query's samenvoegen.
- Selecteer in het dialoogvenster Samenvoegen, onder rechtertabel voor samenvoegen, Landen.
- Selecteer in de tabel Sales de kolom CountryID.
- Selecteer in de tabel Landen de kolom ID.
- Selecteer in de sectie Join type de optie volledige outer join.
- 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 van 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 gebruiken als voorvoegsel 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.