Verwenden des Verknüpfungsoperators

Abgeschlossen

Der Verknüpfungsoperator führt die Zeilen von zwei Tabellen zusammen und bildet so eine neue Tabelle, indem die Werte der angegebenen Spalte aus jeder Tabelle zugeordnet werden.

Syntax

LinkeTabelle | join [Verknüpfungsparameter] ( RechteTabelle ) on Attribute

SecurityEvent 
| where EventID == "4624" 
| summarize LogOnCount=count() by EventID, Account 
| project LogOnCount, Account 
| join kind = inner (
     SecurityEvent 
     | where EventID == "4634" 
     | summarize LogOffCount=count() by EventID, Account 
     | project LogOffCount, Account 
) on Account

Die erste in der Verknüpfung (Join) angegebene Tabelle wird als linke Tabelle betrachtet. Die Tabelle nach dem Join-Schlüsselwort ist die rechte Tabelle. Die Spalten der Tabellen sind mit $left.Column und einem $right.Column gekennzeichnet, um zu unterscheiden, auf welche Tabellenspalten Sie verweisen.

Beim Verknüpfen von Tabellen verwenden Sie Verknüpfungsvarianten, um das Verknüpfungsverhalten zu bestimmen. Es ist von entscheidender Bedeutung, die Auswirkung von Datensätzen auf der linken und rechten Seite basierend auf dem Verknüpfungsverhalten zu verstehen. Die Abbildung unten stellt dar, welche Datensätze beibehalten werden, wenn ein übereinstimmender Datensatz (oder keiner) im anderen Dataset vorhanden ist. Der innere Join zeigt nur Datensätze der linken Seite an, wenn es einen entsprechenden Datensatz auf der rechten Seite gibt. Auf der rechten Seite wird auch ein Datensatz der linken Seite benötigt.

Diagram of Example join types, showing where how joins work.

Verknüpfungsvariante Ausgabedatensätze
kind=leftanti, kind=leftantisemi Gibt alle Datensätze von der linken Seite zurück, für die keine Übereinstimmungen auf der rechten Seite vorhanden sind.
kind=rightanti, kind=rightantisemi Gibt alle Datensätze von der rechten Seite zurück, für die keine Übereinstimmungen auf der linken Seite vorhanden sind.
kind unspecified, kind=innerunique Nur eine Zeile der linken Seite wird für jeden Wert des on-Schlüssels abgeglichen. Die Ausgabe enthält eine Zeile für jede Übereinstimmung dieser Zeile mit Zeilen der rechten Seite.
kind=leftsemi Gibt alle Datensätze von der linken Seite zurück, für die Übereinstimmungen auf der rechten Seite vorhanden sind.
kind=rightsemi Gibt alle Datensätze von der rechten Seite zurück, für die Übereinstimmungen auf der linken Seite vorhanden sind.
kind=inner Enthält eine Zeile in der Ausgabe für jede Kombination von übereinstimmenden Zeilen von der linken und rechten Seite.
kind=leftouter (or kind=rightouter or kind=fullouter) Enthält eine Zeile für jede Zeile auf der linken und rechten Seite, auch wenn keine Übereinstimmung vorliegt. Die Ausgabezellen ohne Übereinstimmung enthalten NULL-Werte.