fullouter join
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
En fullouter
koppling kombinerar effekten av att tillämpa både vänster och höger yttre kopplingar. För kolumner i tabellen som saknar en matchande rad innehåller resultatuppsättningen null
värden. För de poster som matchar skapas en enskild rad i resultatuppsättningen som innehåller fält som fylls i från båda tabellerna.
Syntax
LeftTable|
join
kind=fullouter
[ Tips ] RightTableon
Villkor
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
LeftTable | string |
✔️ | Det vänstra tabell- eller tabelluttrycket, som ibland kallas för den yttre tabellen, vars rader ska sammanfogas. Anges som $left . |
tips | string |
Noll eller fler blankstegsavgränsade kopplingstips i form av Name= Value 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 ON ColumnName. 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". |
Dricks
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 |
hint.strategy=broadcast |
Anger hur du delar frågebelastningen på klusternoder. | Se broadcast join |
hint.shufflekey=<key> |
Den shufflekey frågan delar frågebelastningen på klusternoder med hjälp av en nyckel för att partitioneras data. |
Se shuffle-fråga |
hint.strategy=shuffle |
Den shuffle strategifrågan delar frågebelastningen på klusternoder, där varje nod bearbetar en partition av data. |
Se shuffle-fråga |
Returnerar
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
Den här exempelfrågan kombinerar rader från både tabellerna X och Y och fyller i saknade värden med NULL där det inte finns någon matchning i den andra tabellen. På så sätt kan du se alla möjliga kombinationer av nycklar från båda tabellerna.
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
utdata
Nyckel | Värde 1 | Key1 | Värde 2 |
---|---|---|---|
b | 3 | b | 10 |
b | 2 | b | 10 |
c | 4 | c | 20 |
c | 4 | c | 30 |
d | 40 | ||
a | 1 |
Relaterat innehåll
- Lär dig mer om andra join-smaker