Verwenden des Verknüpfungsoperators
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.
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. |