Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Sammanfoga raderna i två tabeller för att bilda en ny tabell genom att matcha värdena för de angivna kolumnerna från varje tabell.
Kusto Query Language (KQL) erbjuder många typer av kopplingar som var och en påverkar schemat och raderna i den resulterande tabellen på olika sätt. Om du till exempel använder en inner koppling har tabellen samma kolumner som den vänstra tabellen, plus kolumnerna från den högra tabellen. För bästa prestanda, om en tabell alltid är mindre än den andra, använder du den som vänster sida av operatorn join .
Följande bild innehåller en visuell representation av den åtgärd som utförs av varje koppling. Skuggningens färg representerar de kolumner som returneras och de skuggade områdena representerar de rader som returneras.
Syntax
LeftTable|join [ kind=JoinFlavor ] [ Tips ] (RightTable)onVillkor
Läs mer om syntaxkonventioner.
Parameterar
| Namn | Typ | Krävs | Description |
|---|---|---|---|
| LeftTable | string |
✔️ | Det vänstra tabell- eller tabelluttrycket, som ibland kallas för den yttre tabellen, vars rader ska sammanfogas. Anges som $left. |
| JoinFlavor | string |
Typ av koppling som ska utföras: innerunique, inner, leftouter, rightouter, fullouter, leftanti, rightanti, leftsemi, . rightsemi Standardvärdet är innerunique. Mer information om kopplingssmaker finns i Returnerar. |
|
| Tips | string |
Noll eller fler utrymmesavgränsade kopplingstips i form av Namnvärde= som styr beteendet för radmatchningsåtgärden och körningsplanen. Mer information finns i Tips. |
|
| RightTable | string |
✔️ | Den högra tabellen eller tabelluttrycket, som ibland kallas för den inre tabellen, vars rader ska sammanfogas. Anges som $right. |
| villkor | string |
✔️ | Avgör hur rader från LeftTable matchas med rader från RightTable. Om de kolumner som du vill matcha har samma namn i båda tabellerna använder du syntaxen ONColumnName. Annars använder du syntaxen ON $left.LeftColumn==$right.RightColumn. Om du vill ange flera villkor kan du antingen använda nyckelordet "och" eller separera dem med kommatecken. Om du använder kommatecken utvärderas villkoren med hjälp av den logiska operatorn "och". |
Tips/Råd
För bästa prestanda, om en tabell alltid är mindre än den andra, använder du den som vänster sida av kopplingen.
Hints
| Tipsnyckel | Värden | Description |
|---|---|---|
hint.remote |
auto, left, , localright |
Se Anslutning mellan kluster |
hint.strategy=broadcast |
Anger hur du delar frågebelastningen på klusternoder. | Se sändningskoppling |
hint.shufflekey=<key> |
Frågan shufflekey delar frågebelastningen på klusternoder med hjälp av en nyckel för att partitioneras data. |
Se shuffle-fråga |
hint.strategy=shuffle |
Strategifrågan shuffle delar frågebelastningen på klusternoder, där varje nod bearbetar en partition av data. |
Se shuffle-fråga |
| Namn | Värden | Description |
|---|---|---|
hint.remote |
auto, left, , localright |
|
hint.strategy=broadcast |
Anger hur du delar frågebelastningen på klusternoder. | Se sändningskoppling |
hint.shufflekey=<key> |
Frågan shufflekey delar frågebelastningen på klusternoder med hjälp av en nyckel för att partitioneras data. |
Se shuffle-fråga |
hint.strategy=shuffle |
Strategifrågan shuffle delar frågebelastningen på klusternoder, där varje nod bearbetar en partition av data. |
Se shuffle-fråga |
Anmärkning
Kopplingstipsen ändrar inte semantiken join för men kan påverka prestanda.
Retur
Returschemat och raderna beror på kopplingssmaken. Kopplingssmaken anges med typnyckelordet . I följande tabell visas de kopplingssmaker som stöds. Om du vill se exempel för en specifik kopplingssmak väljer du länken i kolumnen Anslut smak .
| Kopplingssmak | Retur | Illustration |
|---|---|---|
| innerunique (standard) | Inre koppling med deduplicering på vänster sida Schema: Alla kolumner från båda tabellerna, inklusive matchande nycklar Rader: Alla deduplicerade rader från den vänstra tabellen som matchar rader från den högra tabellen |
|
| inre | Inre standardkoppling Schema: Alla kolumner från båda tabellerna, inklusive matchande nycklar Rader: Endast matchande rader från båda tabellerna |
|
| leftouter | Vänster yttre koppling Schema: Alla kolumner från båda tabellerna, inklusive matchande nycklar Rader: Alla poster från den vänstra tabellen och endast matchande rader från den högra tabellen |
|
| rightouter | Höger yttre koppling Schema: Alla kolumner från båda tabellerna, inklusive matchande nycklar Rader: Alla poster från den högra tabellen och endast matchande rader från den vänstra tabellen |
|
| fullouter | Fullständig yttre sammanslagning Schema: Alla kolumner från båda tabellerna, inklusive matchande nycklar Rader: Alla poster från båda tabellerna med omatchade celler ifyllda med null |
|
| leftsemi | Vänster halvkoppling Schema: Alla kolumner från den vänstra tabellen Rader: Alla poster från den vänstra tabellen som matchar poster från den högra tabellen |
|
leftanti, , antileftantisemi |
Vänster antikoppling och semivariant Schema: Alla kolumner från den vänstra tabellen Rader: Alla poster från den vänstra tabellen som inte matchar poster från den högra tabellen |
|
| rightsemi | Höger halvkoppling Schema: Alla kolumner från den högra tabellen Rader: Alla poster från den högra tabellen som matchar poster från den vänstra tabellen |
|
rightanti, rightantisemi |
Höger antikoppling och semivariant Schema: Alla kolumner från den högra tabellen Rader: Alla poster från den högra tabellen som inte matchar poster från den vänstra tabellen |
|
Korskoppling
KQL ger ingen korskopplingssmak. Du kan dock uppnå en korskopplingseffekt med hjälp av en platshållarnyckelmetod.
I följande exempel läggs en platshållarnyckel till i båda tabellerna och används sedan för den inre kopplingsåtgärden, vilket effektivt uppnår ett korskopplingsliknande beteende:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder