Share via


inner join

inner 結類別就像來自 SQL 世界的標準內部聯結。 只要左側的記錄與右側的記錄有相同的聯結索引鍵,就會產生輸出記錄。

顯示聯結運作方式的圖表。

Syntax

LeftTable|joinkind=inner [ 提示 ] RightTableon條件

深入瞭解 語法慣例

參數

名稱 類型 必要 Description
LeftTable string ✔️ 左數據表或表格式表示式,有時稱為外部數據表,其數據列要合併。 表示方法為 $left
提示 string 以名稱=的形式分隔零個或多個空格分隔聯結提示,可控制數據列比對作業和執行計劃的行為。 如需詳細資訊,請參閱 提示
RightTable string ✔️ 右數據表或表格式表示式,有時稱為內部數據表,其數據列要合併。 表示方法為 $right
條件 string ✔️ 決定 LeftTable 中的數據列如何與 RightTable 中的數據列相符。 如果您想要比對的數據行在這兩個數據表中具有相同的名稱,請使用 ColumnName 語法ON。 否則,請使用 LeftColumn==$right.RightColumn 語法ON $left.。 若要指定多個條件,您可以使用 「and」 關鍵詞,或使用逗號分隔它們。 如果您使用逗號,則會使用 「and」 邏輯運算符來評估條件。

提示

為了獲得最佳效能,如果一個數據表一律小於另一個數據表,請使用它作為聯結的左側。

提示

參數名稱 說明
hint.remote auto, left, local, right 請參閱跨叢集聯結
hint.strategy=broadcast 指定在叢集節點上共用查詢負載的方式。 請參閱廣播聯結
hint.shufflekey=<key> shufflekey 查詢會使用索引鍵來分割資料,以共用叢集節點上的查詢負載。 請參閱隨機查詢
hint.strategy=shuffle 策略 shuffle 查詢會共用叢集節點上的查詢負載,其中每個節點會處理數據的一個分割區。 請參閱隨機查詢

傳回

架構:這兩個數據表中的所有數據行,包括相符的索引鍵。
數據列:只比對來自這兩個數據表的數據列。

範例

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

輸出

答案 Value1 Key1 Value2
b 3 b 10
b 2 b 10
c 4 c 20
c 4 c 30
k 5 k 50

注意

  • 右側的 (b,10) 聯結了兩次:聯結對象為左側的 (b,2) 和 (b,3)。
  • 左側的 (c,4) 聯結了兩次:聯結對象為右側的 (c,20) 和 (c,30)。
  • 從左邊 (k,5) ,從右邊聯結一次, (k,50) 。