Použití operátoru join
Operátor spojení sloučí řádky dvou tabulek tak, aby vytvořil novou tabulku tak, že odpovídá hodnotám zadaných sloupců z každé tabulky.
Syntaxe
Levá tabulka | join [JoinParameters] ( RightTable ) u atributů
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
První tabulka zadaná ve spojení je považována za levou tabulku. Tabulka za klíčovým slovem spojení je správná tabulka. Sloupce z tabulek jsou určené, a $right.Column
k rozlišení sloupců tabulek, $left.Column
na které odkazujete.
Při spojování tabulek pomocí příchutí Join určíte chování spojení. Je důležité pochopit dopad záznamů na levé a pravé straně na základě příchutě spojení. Následující obrázek ukazuje, které záznamy se budou uchovávat, pokud existují nebo nejsou odpovídající záznamy v jiné datové sadě. Vnitřní spojení zobrazí záznamy pouze z levé strany, pokud je na pravé straně odpovídající záznam. Pravá strana bude také vyžadovat záznam na levé straně.
Spojení příchuť | Výstupní záznamy |
---|---|
kind=leftanti, kind=leftantisemi | Vrátí všechny záznamy z levé strany, které nemají shody zprava. |
kind=rightanti, kind=rightantisemi | Vrátí všechny záznamy z pravé strany, které nemají shody zleva. |
kind unspecified, kind=innerunique | Pro každou hodnotu klíče se shoduje pouze jeden řádek z levé strany. Výstup obsahuje řádek pro každou shodu tohoto řádku s řádky zprava. |
kind=leftsemi | Vrátí všechny záznamy z levé strany, které mají shody zprava. |
kind=rightsemi | Vrátí všechny záznamy z pravé strany, které mají shody zleva. |
kind=inner | Obsahuje ve výstupu řádek pro každou kombinaci odpovídajících řádků zleva a doprava. |
kind=leftouter (nebo kind=rightouter nebo kind=fullouter) | Obsahuje řádek pro každý řádek vlevo a vpravo, i když nemá žádnou shodu. Chybějící výstupní buňky obsahují hodnoty null. |