Freigeben über


fullouter join

Gilt für: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Eine fullouter Verknüpfung kombiniert den Effekt der Anwendung von links- und rechten äußeren Verknüpfungen. Für Spalten der Tabelle, für die keine übereinstimmende Zeile vorhanden ist, enthält null das Resultset Werte. Bei Datensätzen, die übereinstimmen, wird eine einzelne Zeile im Resultset erstellt, die Felder aus beiden Tabellen enthält.

Diagramm, das zeigt, wie die Verknüpfung funktioniert.

Syntax

LeftTable | join kind=fullouter [ Hinweise ] RightTable-Bedingungen on

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich BESCHREIBUNG
LeftTable string ✔️ Die linke Tabelle oder der tabellarischen Ausdruck, die bzw. der manchmal als äußere Tabelle bezeichnet wird, deren Zeilen zusammengeführt werden sollen. Wird als $left bezeichnet.
Hinweise string Null- oder mehr durch Leerzeichen getrennte Verknüpfungshinweise in Form des Namenswerts =, die das Verhalten des Vorgangs mit Zeilenübereinstimmung und des Ausführungsplans steuern. Weitere Informationen finden Sie unter Hinweise.
RightTable string ✔️ Die rechte Tabelle oder der tabellarische Ausdruck, die bzw. der manchmal als innere Tabelle bezeichnet werden, deren Zeilen zusammengeführt werden sollen. Wird als $right bezeichnet.
Conditions (MSBuild-Bedingungen) string ✔️ Bestimmt, wie Zeilen aus LeftTable mit Zeilen aus RightTable abgeglichen werden. Wenn die Spalten, die Sie abgleichen möchten, in beiden Tabellen denselben Namen haben, verwenden Sie die Syntax ON "ColumnName". Verwenden Sie andernfalls die Syntax ON $left."LeftColumn RightColumn$right.==". Um mehrere Bedingungen anzugeben, können Sie entweder das Schlüsselwort „and“ verwenden oder sie durch Kommas trennen. Wenn Sie Kommas verwenden, werden die Bedingungen mit dem logischen Operator „and“ ausgewertet.

Tipp

Wenn eine Tabelle immer kleiner als die andere ist, verwenden Sie diese für die bestmögliche Leistung als die linke Seite des Join.

Hinweise

Parametername Werte Beschreibung
hint.remote auto, , leftlocalright Siehe clusterübergreifender Join
hint.strategy=broadcast Gibt die Art und Weise an, in der die Abfragelast auf Clusterknoten verteilt wird. Siehe Broadcast-Join
hint.shufflekey=<key> Die shufflekey-Abfrage teilt die Abfragelast auf Clusterknoten auf, wobei ein Schlüssel zum Partitionieren der Daten verwendet wird. Weitere Informationen finden Sie unter Shuffleabfrage
hint.strategy=shuffle Die shuffle-Strategieabfrage teilt die Abfragelast auf Clusterknoten auf, wobei jeder Knoten eine Partition der Daten verarbeitet. Weitere Informationen finden Sie unter Shuffleabfrage

Gibt zurück

Schema: Alle Spalten aus beiden Tabellen, einschließlich der übereinstimmenden Schlüssel.
Zeilen: Alle Datensätze aus beiden Tabellen mit nicht übereinstimmender Zellen, die mit NULL gefüllt sind.

Beispiel

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

Ausgabe

Schlüssel Wert1 Key1 Wert2
b 3 b 10
b 2 b 10
c 4 c 20
c 4 c 30
T 40
a 1