Uso del operador join
El operador join combina las filas de dos tablas para formar una nueva tabla haciendo coincidir los valores de las columnas especificadas de cada tabla.
Sintaxis
TablaIzquierda | join [ParámetrosDeJoin] ( TablaDerecha ) on Atributos
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 primera tabla especificada en la instrucción join se considera la tabla izquierda. La tabla especificada después de la palabra clave join es la tabla derecha. Se designan las columnas de las tablas, $left.Column
y $right.Column
para distinguir las columnas de las tablas a las que hace referencia.
Cuando se combinan tablas, se usan tipos del operador join para determinar el comportamiento de la combinación. Es fundamental comprender el impacto de los registros en los lados izquierdo y derecho según el tipo del operador join. En el gráfico siguiente, se muestran los registros que se mantendrán si hay o no un registro coincidente en el otro conjunto de datos. La combinación interna solo mostrará los registros del lado izquierdo si hay un registro coincidente en el lado derecho. El lado derecho también requerirá un registro en el lado izquierdo.
Tipo del operador join | Registros de salida |
---|---|
kind=leftanti, kind=leftantisemi | Devuelve todos los registros del lado izquierdo que no tienen coincidencias en el derecho. |
kind=rightanti, kind=rightantisemi | Devuelve todos los registros del lado derecho que no tienen coincidencias en el izquierdo. |
kind unspecified, kind=innerunique | Solo se hace coincidir una fila del lado izquierdo con cada valor de la clave on. La salida contiene una fila por cada coincidencia de esta fila con filas de la derecha. |
kind=leftsemi | Devuelve todos los registros del lado izquierdo que tienen coincidencias en el derecho. |
kind=rightsemi | Devuelve todos los registros del lado derecho que tienen coincidencias en el izquierdo. |
kind=inner | Contiene una fila en la salida por cada combinación de filas coincidentes de la izquierda y la derecha. |
kind=leftouter (o kind=rightouter o kind=fullouter) | Contiene una fila para cada fila de la izquierda y la derecha, incluso si no tiene ninguna coincidencia. Las celdas de salida sin coincidencias contienen valores NULL. |