Korzystanie z operatora sprzężenia

Ukończone

Operator sprzężenia scala wiersze dwóch tabel, aby utworzyć nową tabelę, pasując do wartości określonych kolumn z każdej tabeli.

Składnia

LeftTable | join [JoinParameters] ( RightTable ) w atrybutach

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

Pierwsza tabela określona w sprzężeniu jest uważana za tabelę Lewa. Tabela po słowie kluczowym sprzężenia jest właściwą tabelą. Kolumny z tabel są wyznaczone, i $left.Column , $right.Column aby odróżnić kolumny tabel, do których odwołujesz się.

Podczas łączenia tabel należy użyć opcji sprzężenia w celu określenia zachowania łączenia. Ważne jest, aby zrozumieć wpływ rekordów po lewej i prawej stronie na podstawie smaku sprzężenia. Na poniższej ilustracji pokazano, które rekordy będą przechowywane, jeśli istnieje lub nie ma pasującego rekordu w innym zestawie danych. Sprzężenie wewnętrzne będzie pokazywać rekordy z lewej strony tylko wtedy, gdy po prawej stronie znajduje się pasujący rekord. Prawa strona będzie również wymagać rekordu po lewej stronie.

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

Sprzężenia smak Rekordy wyjściowe
kind=leftanti, kind=leftantisemi Zwraca wszystkie rekordy po lewej stronie, które nie mają dopasowań z prawej strony
kind=rightanti, kind=rightantisemi Zwraca wszystkie rekordy z prawej strony, które nie mają dopasowań z lewej strony.
rodzaj nieokreślony, kind=innerunique Tylko jeden wiersz po lewej stronie jest dopasowywany dla każdej wartości w kluczu. Dane wyjściowe zawierają wiersz dla każdego dopasowania tego wiersza z wierszami z prawej strony
kind=leftsemi Zwraca wszystkie rekordy z lewej strony, które mają dopasowania z prawej strony.
kind=rightsemi Zwraca wszystkie rekordy z prawej strony, które mają dopasowania z lewej strony.
kind=inner Zawiera wiersz w danych wyjściowych dla każdej kombinacji pasujących wierszy z lewej i prawej.
kind=leftouter (lub kind=rightouter lub kind=fullouter) Zawiera wiersz dla każdego wiersza po lewej i prawej stronie, nawet jeśli nie jest zgodny. Niedopasowane komórki wyjściowe zawierają wartości null.