Join | Qlik CloudHjälp
Gå till huvudinnehåll Gå till ytterligare innehåll

Join

join-prefixet länkar den inlästa tabellen till en existerande namngiven tabell eller den senast skapade datatabellen.

Effekten av att slå samman (join) data är att måltabellen utökas med ytterligare en uppsättning fält eller attribut, nämligen sådana som inte redan finns i måltabellen. Eventuella gemensamma fältnamn mellan källdatauppsättningen och måltabellen används för att räkna ut hur de nya inkommande posterna ska associeras. Detta kallas ofta för en "naturlig koppling" (natural join). En Qlik-kopplingsoperation kan leda till att den resulterande måltabellen får fler eller färre poster än den hade från början, beroende på hur unik kopplingsassociationen är och vilken typ av koppling som används.

video thumbnail

Typer av kopplingar

Det finns fyra typer av kopplingar:

  • Left join

  • Inner join

  • Outer join

  • Right join

Exempel på resultatuppsättningar från olika typer av kopplingsoperationer

Exempel på resultatuppsättningar från olika typer av kopplingsoperationer, med en före-och-efter-representation av datatabellerna efter varje operation. Indata består av en måltabell och en inkommande datauppsättning. Måltabellen har två kolumner med två radposter för fälten 'Trade ID' och 'Asset Class'. Inkommande data har två kolumner med två radposter för fälten 'Trade ID' och 'Exchange'. Left Join behåller den ursprungliga måltabellen och lägger till en tredje kolumn där allt är tomt förutom tillägget av en av 'Exchange'-radposterna. Inner Join skapar en tabell med en Trade ID-rad och en tredje kolumn, återigen för 'Exchange'-radposten. Outer Join behåller måltabellen och lägger till en tredje kolumn, längs en tredje rad till vilken den andra raden i den inkommande datauppsättningen läggs till. Right Join tar bort den andra radposten i måltabellen och ersätter den med information från den andra radposten i den inkommande datauppsättningen, och lägger till en tredje kolumn i processen.

Left join

Left join är den vanligaste kopplingstypen. Om du till exempel har en transaktionsdatauppsättning och vill kombinera den med en referensdatauppsättning, skulle du normalt använda en Left Join. Du skulle ladda transaktionstabellen först och sedan ladda referensdatauppsättningen samtidigt som du kopplar den via ett Left Join-prefix till den redan laddade transaktionstabellen. En Left Join behåller alla transaktioner som de är och lägger till de kompletterande referensdatafälten där en matchning hittas.

Left join

Diagram som på en övergripande nivå beskriver de datakombinationer som uppstår under en left join.

Inner join

När du har två datauppsättningar där du bara bryr dig om resultat där det finns en matchande association, bör du överväga att använda en Inner Join. Detta eliminerar alla poster från både de laddade källdata och måltabellen om ingen matchning hittas. Som ett resultat kan detta lämna din måltabell med färre poster än innan kopplingsoperationen ägde rum.

Inner join

Diagram som på en övergripande nivå beskriver de datakombinationer som uppstår under en inner join.

Outer join (standard)

När du behöver behålla både målposterna och alla inkommande poster använder du en Outer Join. Där ingen matchning hittas behålls fortfarande varje uppsättning poster medan fälten från den motsatta sidan av kopplingen förblir ofyllda (null).

Om typnyckelordet utelämnas är standardkopplingstypen en outer join.

Outer join

Diagram som på en övergripande nivå beskriver de datakombinationer som uppstår under en outer join.

Right join

Denna kopplingstyp behåller alla poster som ska laddas, samtidigt som den reducerar posterna i den tabell som är målet för kopplingen till endast de poster där det finns en associationsmatchning i de inkommande posterna. Detta är en nischad kopplingstyp som ibland används som ett sätt att trimma ner en redan förladdad tabell med poster till en nödvändig delmängd.

Right join

Diagram som på en övergripande nivå beskriver de datakombinationer som uppstår under en right join.

Cross join

Anteckning om informationOm det inte finns några gemensamma fältnamn mellan källan och målet för en kopplingsoperation, kommer kopplingen att resultera i en kartesisk produkt av alla rader – detta kallas en "cross join".

Exempel på resultatuppsättning från en "cross join"-operation

Före-och-efter-jämförelse av indata med utdata efter en cross join-operation (som kan involvera en kopplingsoperation av vilken typ som helst). Indata är en måltabell och en inkommande datauppsättning. Måltabellen består av tre kolumner, med två radposter. Kolumnerna är 'Trade ID', 'Base Currency' och 'Amount'. Den inkommande datauppsättningen har två kolumner ('Trade Currency' och 'Rate') och två radposter. Den resulterande tabellen har fem kolumner, vilka är 'Trade ID', 'Base Currency', 'Amount', 'Target Currency' och 'Rate'. Det finns fyra radposter som kombinerar alla data. Varje 'Trade ID'-post har två rader med olika data i de andra fälten.

Syntax och argument

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

Argument
Argument Beskrivning
tablename Namnet på den tabell som ska jämföras med den inlästa tabellen.
loadstatementeller selectstatement LOAD- eller SELECT-satsen för den laddade tabellen.

Relaterade ämnen

Dessa ämnen kan hjälpa dig att arbeta med den här funktionen:

Relaterade ämnen
Ämne Beskrivning
Kombinera tabeller med Join och Keep Det här ämnet ger ytterligare förklaring av begreppen att "koppla" (join) och "behålla" (keep) datauppsättningar.
Keep Laddningsprefixet Keep liknar prefixet Join, men det kombinerar inte käll- och måldatauppsättningarna. Istället trimmar det varje datauppsättning enligt den typ av operation som antagits (inner, outer, left eller right).

Exempel på laddningsskript - Left join

En left join behåller alla poster från din huvudtabell (måltabell) och lägger till matchande data från en andra tabell (källtabell). Om det inte finns någon matchning i källan visas huvudtabellens post fortfarande, men med tomma fält från källtabellen.

Exempel på laddningsskript - Inner join

En inner join behåller endast poster som finns i båda tabellerna (baserat på matchande fältvärden).

Exempel på laddningsskript - Outer join

En outer join behåller alla poster från båda tabellerna. Där det inte finns någon matchning lämnas fälten tomma.

Exempel på laddningsskript - Right join

En right join behåller alla poster från källtabellen och lägger till matchande information från måltabellen. Om måltabellen inte har någon matchning är fälten från den tomma.

Felsökning - Cross join

Var den här sidan till hjälp för dig?

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!