Utiliser l’opérateur de jointure
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.
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. |