join 演算子を使用する

完了

join 演算子は、指定した各テーブルの列値を照合して、2 つのテーブル行数を結合し、新しいテーブルを作成します。

構文

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

結合で指定した最初のテーブルが、左テーブルと見なされます。 join キーワードの後のテーブルが右テーブルです。 各テーブルからの列にはそれぞれ $left.Column$right.Column が指定され、これにより、どのテーブルの列を参照しているのかが識別されます。

テーブルを結合する場合は、結合フレーバーを使用して結合の動作を決定します。 左と右側のレコードに、結合フレーバーが影響することを理解しておくことが重要です。 次の図は、もう一方のデータセットに、一致するレコードが存在する場合または存在しない場合、どのレコードが保持されるかを示しています。 内部結合では、右側に一致するレコードがある場合、左側のレコードのみを表示します。 右側でも、左側のレコードが必要です。

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

結合フレーバー 出力されるレコード
kind=leftanti、kind=leftantisemi 右側に一致するものがない、左側のすべてのレコードが返されます。
kind=rightanti、kind=rightantisemi 左側に一致するものがない、右側のすべてのレコードが返されます。
kind 未指定、kind=innerunique 左側の 1 つの行のみが on キーの各値に対して照合されます。 出力には、右の行のこの行と一致するそれぞれの行が含まれます。
kind=leftsemi 右側に一致するものがある、左側のすべてのレコードが返されます。
kind=rightsemi 左側に一致するものがある、右側のすべてのレコードが返されます。
kind=inner 出力には、左右の一致する行のすべての組み合わせに対応する行が含まれます。
kind=leftouter (または kind=rightouter または kind=fullouter) 一致するものがない場合も含めて、左右のすべての行に対応する行が含まれます。 一致しない出力セルには null が含まれます。