fullouter join

En fullouter koppling kombinerar effekten av att använda både vänster och höger yttre kopplingar. För kolumner i tabellen som saknar en matchande rad innehåller null resultatuppsättningen värden. För de poster som matchar skapas en enda rad i resultatuppsättningen som innehåller fält som fylls i från båda tabellerna.

Diagram som visar hur kopplingen fungerar.

Syntax

LeftTable|joinkind=fullouter [ Tips ] RightTableonVillkor

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
LeftTable string ✔️ Den vänstra tabellen eller tabelluttrycket, som ibland kallas den yttre tabellen, vars rader ska sammanfogas. Betecknas som $left.
Tips string Noll eller flera blankstegsavgrä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 den inre tabellen, vars rader ska sammanfogas. Betecknas 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

För bästa prestanda, om en tabell alltid är mindre än den andra, använder du den som vänster sida av kopplingen.

Tips

Namn på parametrar Värden Beskrivning
hint.remote auto, left, local, right Se Koppla mellan kluster
hint.strategy=broadcast Anger hur du delar frågebelastningen på klusternoder. Se sändningsanslutning
hint.shufflekey=<key> Frågan shufflekey delar frågebelastningen på klusternoder med hjälp av en nyckel för att partitioneringsdata. 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

Returer

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.

Exempel

let X = datatable(Key:string, Value1:long)
[
    'a',1,
    'b',2,
    'b',3,
    'c',4
];
let Y = datatable(Key:string, Value2:long)
[
    'b',10,
    'c',20,
    'c',30,
    'd',40
];
X | join kind=fullouter Y on Key

Resultat

Nyckel Värde 1 Key1 Värde 2
a 1
b 2 b 10
b 3 b 10
c 4 c 20
c 4 c 30
d 40