次の方法で共有


fullouter 結合

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft Sentinel

fullouter結合は、左結合と右外部結合の両方を適用する効果を結合します。 一致する行がないテーブルの列の場合、結果セットには null 値が含まれます。 一致するレコードの場合、両方のテーブルから入力されたフィールドを含む 1 つの行が結果セットに生成されます。

結合のしくみを示す図。

構文

LeftTable|joinkind=fullouter [ Hints ] RightTableonConditions

構文規則について詳しく知る。

パラメーター

件名 タイプ Required 説明
LeftTable string ✔️ 行をマージする左側のテーブルまたは表形式の式。外部テーブルとも呼ばれます。 $left と示されます。
[ヒント] string 行一致操作と実行プランの動作を制御する、 Name=Value の形式の 0 個以上のスペース区切り結合ヒント。 詳細については、「ヒント」を参照してください。
RightTable string ✔️ 行をマージする右側のテーブルまたは表形式の式。内部テーブルとも呼ばれます。 $right と示されます。
条件 string ✔️ LeftTable の行を RightTable の行と照合する方法を指定します。 一致する列の名前が両方のテーブルで同じである場合は、構文 ONColumnName を使用します。 それ以外の場合は、構文 ON $left.LeftColumn==$right.RightColumn を使用します。 複数の条件を指定するには、"and" キーワードを使用するか、コンマで区切ります。 コンマを使用する場合、条件は "and" 論理演算子を使用して評価されます。

ヒント

パフォーマンスを最高にするには、一方のテーブルが他より常に小さい場合は、それを結合の左側として使用します。

[ヒント]

パラメーター名 説明
hint.remote autoleftlocalright クラスター間の結合」を参照してください
hint.strategy=broadcast クラスター ノードでクエリ負荷を共有する方法を指定します。 ブロードキャスト結合を参照してください。
hint.shufflekey=<key> shufflekey クエリは、データをパーティション化するキーで、クラスター ノードのクエリ負荷を共有します。 シャッフル クエリに関するページを参照してください
hint.strategy=shuffle shuffle 戦略クエリは、クラスター ノードのクエリ負荷を共有します。各ノードで 1つずつ、データのパーティション化を処理します。 シャッフル クエリに関するページを参照してください

返品

スキーマ: 両方のテーブルのすべての列 (一致するキーを含む)。
: null が設定された一致しないセルを持つ両方のテーブルのすべてのレコード。

次のクエリ例では、テーブル X と Y の両方の行を結合し、他のテーブルに一致するものがない場合は NULL で欠損値を入力します。 これにより、両方のテーブルから可能なすべてのキーの組み合わせを確認できます。

let X = datatable(Key:string, Value1:long)
[
    'a',1,
    'b',2,
    'b',3,
    'c',4
];
let Y = datatable(Key:string, Value2:long)
[
    'b',10,
    'c',20,
    'c',30,
    'd',40
];
X | join kind=fullouter Y on Key

出力

Key Value1 Key1 Value2
b 3 b 10
b 2 b 10
c 4 c 20
c 4 c 30
d 40
a 1