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 sammanfoga 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. Alla vanliga fältnamn mellan källdatauppsättningen och måltabellen används för att räkna ut hur du associerar de nya inkommande posterna. Detta kallas vanligtvis för en natural join. En Qlik join-åtgärd kan leda till att den resulterande måltabellen har fler eller färre poster än i början, beroende på dess unika karaktär och vilken typ av join som tillämpas.

Det finns fyra join-typer

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

När du har två datauppsättningar och bara är intresserad av resultat där det finns en matchande association, överväg att använda en Inner Join. Detta kommer att eliminera alla poster från både källdata som laddats och måltabellen om ingen matchning hittas. Som ett resultat kan detta lämna din måltabell med färre poster än innan join-åtgärden ägde rum.

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

Om nyckelordet typ utelämnas är standardtyp för join en yttre join.

Denna join-typ behåller alla poster som håller på att laddas, samtidigt som posterna i tabellen som denna join är inriktad på reduceras till endast de poster där det finns en associationsmatchning i de inkommande posterna. Detta är en specifik join-typ som ibland används som ett sätt att trimma ner en redan förinläst tabell med poster till en nödvändig delmängd.

Exempel på resultatuppsättningar från olika typer av join-åtgärder

Exempel på resultatuppsättningar från olika typer av join-åtgärder, med en före- och efterrepresentation av datatabellerna efter varje åtgärd.
Anteckning om informationOm det inte finns några gemensamma fältnamn mellan källan och målet för en join-åtgärd, 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-åtgärd

Före- och efterjämförelse av indata med utdata efter en cross join-åtgärd (vilket kan innebära en join-åtgärd av vilken typ som helst).

Syntax:  

[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.

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

Relaterade ämnen
Avsnitt Beskrivning
Kombinera tabeller med Join och Keep Det här ämnet ger ytterligare förklaringar av begreppen join och keep för datauppsättningar.
Keep Keep-laddningsprefixet liknar Join-prefixet, men det kombinerar inte käll- och måldatauppsättningarna. Istället trimmar den varje datauppsättning enligt vilken typ av åtgärd som används (inner, outer, left eller right).

Exempel 1 – Left join: Berika en måltabell med en referensdatauppsättning

Exempel 2 – Inner join: Kombinera endast matchande poster

Exempel 3 – Yttre sammanfogning: Kombinera överlappande rekorduppsättningar

Exempel 4 – Högerkoppling: Trimma ner en måltabell med en sekundär huvuddatauppsättning

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

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!