Usare l'operatore di join

Completato

L'operatore di join esegue il merge delle righe di due tabelle per formare una nuova tabella, facendo corrispondere i valori delle colonne specificate di ogni tabella.

Sintassi

LeftTable | join [JoinParameters] ( RightTable ) on Attributes

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

La prima tabella specificata nel join è considerata la tabella di sinistra. La tabella dopo la parola chiave join è la tabella di destra. Le colonne delle tabelle sono designate $left.Column e $right.Column per distinguere le colonne delle tabelle a cui si fa riferimento.

Quando si crea un join delle tabelle, si usano diverse versioni di join per determinare il comportamento del join. È essenziale comprendere l'impatto dei record a sinistra e a destra in base alla versione di join. Il grafico seguente mostra quali record verranno conservati se è presente o manca un record corrispondente nell'altro set di dati. L'inner join visualizzerà solo i record sul lato sinistro se è presente un record corrispondente sul lato destro. Anche sul lato destro sarà richiesto un record sul lato sinistro.

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

Versione di join Record di output
kind=leftanti, kind=leftantisemi Restituisce tutti i record del lato sinistro che non hanno corrispondenze a destra.
kind=rightanti, kind=rightantisemi Restituisce tutti i record del lato destro che non hanno corrispondenze a sinistra.
kind unspecified, kind=innerunique Per ogni valore della chiave viene trovata una corrispondenza solo con una riga a sinistra. L'output contiene una riga per ogni corrispondenza di questa riga con le righe a destra.
kind=leftsemi Restituisce tutti i record del lato sinistro che hanno corrispondenze a destra.
kind=rightsemi Restituisce tutti i record del lato destro che hanno corrispondenze a sinistra.
kind=inner Contiene una riga per ogni combinazione di righe corrispondenti a sinistra e a destra.
kind=leftouter (o kind=rightouter o kind=fullouter) Contiene una riga per ogni riga a sinistra e a destra, anche in caso di assenza di corrispondenze. Le celle di output senza corrispondenza contengono valori Null.