Utiliser l’opérateur de jointure

Effectué

L’opérateur de jointure fusionne les lignes de deux tables pour former une nouvelle table en mettant en correspondance les valeurs des colonnes spécifiées de chaque table.

Syntaxe

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 première table spécifiée dans la jointure est considérée comme la table de gauche. La table après le mot clé join est la table de droite. Les colonnes des tables sont désignées $left.Column et $right.Column, ce qui permet de distinguer les colonnes de tables que vous référencez.

Lors de la jointure de tables, vous utilisez des saveurs de jointure pour déterminer le comportement de la jointure. Il est essentiel de comprendre l’impact des enregistrements à gauche et à droite en fonction de la saveur de jointure. Le graphique ci-dessous montre les enregistrements qui seront conservés s’il existe ou non un enregistrement correspondant dans l’autre jeu de données. La jointure interne affiche uniquement les enregistrements à gauche s’il existe un enregistrement correspondant à droite. Le côté droit nécessite également un enregistrement côté gauche.

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

Saveur de jointure Enregistrements de sortie
kind=leftanti, kind=leftantisemi Renvoie tous les enregistrements du côté gauche qui n'ont pas de correspondance du côté droit.
kind=rightanti, kind=rightantisemi Renvoie tous les enregistrements du côté droit qui n'ont pas de correspondance du côté gauche.
kind unspecified, kind=innerunique Une seule ligne à gauche est mise en correspondance pour chaque valeur de la clé on. La sortie contient une ligne pour chaque correspondance de cette ligne avec des lignes à droite
kind=leftsemi Renvoie tous les enregistrements du côté gauche qui ont des correspondances du côté droit.
kind=rightsemi Renvoie tous les enregistrements du côté droit qui ont des correspondances du côté gauche.
kind=inner Contient une ligne pour chaque combinaison de lignes correspondantes des côtés gauche et droit.
kind=leftouter (ou kind=rightouter ou kind=fullouter) Contient une ligne pour chaque ligne de gauche et de droite, même si elle n'a pas de correspondance. Les cellules de sortie sans correspondance contiennent des valeurs null.