Ga naar hoofdinhoud Ga naar aanvullende inhoud

Join

Het prefix join koppelt de geladen tabel aan een bestaande benoemde tabel of de laatste eerder gemaakte gegevenstabel.

Het effect van het samenvoegen van gegevens is het uitbreiden van de doel-gegevenstabel met een extra set velden of kenmerken, namelijk die welke nog niet aanwezig zijn in de doel-gegevenstabel. Eventuele gemeenschappelijke veldnamen tussen de bron-gegevensverzameling en de doel-gegevenstabel worden gebruikt om te bepalen hoe de nieuwe inkomende records moeten worden gekoppeld. Dit wordt gewoonlijk een “natural join” genoemd. Een Qlik join-bewerking kan ertoe leiden dat de resulterende doel-gegevenstabel meer of minder records bevat dan waarmee werd begonnen, afhankelijk van de uniciteit van de join-koppeling en het type join dat wordt gebruikt.

video thumbnail

Typen joins

Er zijn vier typen joins:

  • Left join

  • Inner join

  • Outer join

  • Right join

Voorbeeldresultaten van verschillende typen join-bewerkingen

Voorbeeldresultaten van verschillende typen join-bewerkingen, met een weergave van de gegevenstabellen voor en na elke bewerking. De invoer bestaat uit een doel-gegevenstabel en een inkomende gegevensverzameling. De doel-gegevenstabel heeft twee kolommen met twee rij-items voor de velden 'Trade ID' en 'Asset Class'. De inkomende gegevens hebben twee kolommen met twee rij-items voor de velden 'Trade ID' en 'Exchange'. De Left Join behoudt de initiële doel-gegevenstabel en voegt een derde kolom toe waarbij alles leeg is, behalve de toevoeging van een van de 'Exchange' rij-items. De Inner Join maakt een tabel met één Trade ID-rij en een derde kolom, wederom voor het 'Exchange' rij-item. De Outer Join behoudt de doel-gegevenstabel en voegt een derde kolom toe, samen met een derde rij waaraan de tweede rij van de inkomende gegevensverzameling wordt toegevoegd. De Right Join verwijdert het tweede rij-item van de doel-gegevenstabel en vervangt dit door informatie uit het tweede rij-item van de inkomende gegevensverzameling, waarbij in het proces een derde kolom wordt toegevoegd.

Left join

Left joins zijn het meest voorkomende type join. Als u bijvoorbeeld een transactie-gegevensverzameling heeft en deze wilt combineren met een referentie-gegevensverzameling, gebruikt u doorgaans een Left Join. U laadt eerst de transactietabel en laadt vervolgens de referentie-gegevensverzameling terwijl u deze via een Left Join-voorvoegsel aan de reeds geladen transactietabel koppelt. Een Left Join behoudt alle transacties zoals ze zijn en voegt de aanvullende referentie-gegevensvelden toe waar een overeenkomst wordt gevonden.

Left join

Diagram dat op hoog niveau de gegevenscombinaties schetst die optreden tijdens een left join.

Inner join

Wanneer u twee gegevensverzamelingen heeft waarbij u alleen geïnteresseerd bent in resultaten waar een overeenkomende koppeling bestaat, overweeg dan het gebruik van een Inner Join. Dit elimineert alle records uit zowel de geladen brongegevens als de doel-gegevenstabel als er geen overeenkomst wordt gevonden. Als gevolg hiervan kan uw doel-gegevenstabel minder records bevatten dan vóór de join-bewerking.

Inner join

Diagram dat op hoog niveau de gegevenscombinaties schetst die optreden tijdens een inner join.

Outer join (standaard)

Wanneer u zowel de doelrecords als alle inkomende records wilt behouden, gebruikt u een Outer Join. Waar geen overeenkomst wordt gevonden, blijft elke set records behouden, terwijl de velden aan de tegenovergestelde kant van de join oningevuld (null) blijven.

Als het type-trefwoord wordt weggelaten, is het standaard join-type een outer join.

Outer join

Diagram dat op hoog niveau de gegevenscombinaties schetst die optreden tijdens een outer join.

Right join

Dit join-type behoudt alle records die geladen gaan worden, terwijl de records in de tabel die door de join wordt getarget, worden verminderd tot alleen die records waarvoor een koppelingsmatch in de inkomende records bestaat. Dit is een niche join-type dat soms wordt gebruikt als middel om een reeds vooraf geladen tabel met records in te korten tot een vereiste subset.

Right join

Diagram dat op hoog niveau de gegevenscombinaties schetst die optreden tijdens een right join.

Cross join

InformatieAls er geen veldnamen gemeenschappelijk zijn tussen de bron en het doel van een join-bewerking, resulteert de join in een cartesiaans product van alle rijen – dit wordt een “cross join” genoemd.

Voorbeeldresultaat van een "cross join"-bewerking

Vergelijking voor en na van invoergegevens met uitvoer na een cross join-bewerking (die een join-bewerking van elk type kan inhouden). De invoer is een doel-gegevenstabel en een inkomende gegevensverzameling. De doel-gegevenstabel bestaat uit drie kolommen, met twee rij-items. De kolommen zijn 'Trade ID', 'Base Currency' en 'Amount'. De inkomende gegevensverzameling heeft twee kolommen ('Trade Currency' en 'Rate') en twee rij-items. De resulterende tabel heeft vijf kolommen, namelijk 'Trade ID', 'Base Currency', 'Amount', 'Target Currency' en 'Rate'. Er zijn vier rij-items die alle gegevens combineren. Elk 'Trade ID'-item heeft twee rijen met verschillende gegevens in de andere velden.

Syntaxis en argumenten

[inner | outer | left | right ]Join [ (tablename ) ]( loadstatement | selectstatement )

Argumenten
Argument Beschrijving
tablename De benoemde tabel die moet worden vergeleken met de geladen tabel.
loadstatementof selectstatement De LOAD of SELECT-opdracht voor de geladen tabel.

Gerelateerde onderwerpen

Deze onderwerpen kunnen u helpen bij het werken met deze functie:

Gerelateerde onderwerpen
Onderwerp Beschrijving
Tabellen samenvoegen met Join en Keep Dit onderwerp biedt verdere uitleg over de concepten van het “samenvoegen” (joining) en “behouden” (keeping) van gegevensverzamelingen.
Keep Het Keep load-voorvoegsel is vergelijkbaar met het Join-voorvoegsel, maar het combineert de bron- en doel-gegevensverzamelingen niet. In plaats daarvan trimt het elke gegevensverzameling volgens het type bewerking dat is gekozen (inner, outer, left of right).

Load script-voorbeelden - Left join

Een left join behoudt alle records uit uw hoofd- (doel-) tabel en voegt overeenkomende gegevens uit een tweede (bron-) tabel toe. Als er geen overeenkomst in de bron is, verschijnt het record van de hoofdtabel nog steeds, maar met lege velden uit de brontabel.

Load script-voorbeelden - Inner join

Een inner join behoudt alleen records die in beide tabellen bestaan (gebaseerd op overeenkomende veldwaarden).

Load script-voorbeelden - Outer join

Een outer join behoudt alle records uit beide tabellen. Waar geen overeenkomst is, worden velden leeg gelaten.

Load script-voorbeelden - Right join

Een right join behoudt alle records uit de brontabel en voegt overeenkomende info uit de doeltabel toe. Als de doeltabel geen overeenkomst heeft, zijn velden daaruit leeg.

Probleemoplossing - Cross join

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een tikfout, een ontbrekende stap of een technische fout – laat het ons weten!