vnitřní spojení

Příchuť inner spojení se podobá standardnímu vnitřnímu spojení ze světa SQL. Výstupní záznam se vytvoří vždy, když má záznam na levé straně stejný klíč spojení jako záznam na pravé straně.

Diagram znázorňující, jak spojení funguje

Syntax

Levá tabulka|joinkind=inner [ Rady ] RightTableonPodmínky

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Typ Vyžadováno Popis
Levá tabulka string ✔️ Levá tabulka nebo tabulkový výraz, někdy označovaný jako vnější tabulka, jejíž řádky se mají sloučit. Označuje se jako $left.
Tipy string Žádné nebo více mezerami oddělených tipů spojení ve formě hodnoty názvu=, které řídí chování operace shody řádků a plánu provádění. Další informace najdete v tématu Tipy.
RightTable string ✔️ Pravá tabulka nebo tabulkový výraz, někdy označovaný jako vnitřní tabulka, jejíž řádky se mají sloučit. Označuje se jako $right.
Podmínky string ✔️ Určuje, jak jsou řádky z tabulky LeftTable spárovány s řádky z tabulky RightTable. Pokud mají sloupce, které chcete shodovat, stejný název v obou tabulkách, použijte syntaxi ONColumnName. Jinak použijte syntaxi ON $left.LeftColumn==$right.RightColumn. Pokud chcete zadat více podmínek, můžete buď použít klíčové slovo "a", nebo je oddělit čárkami. Pokud použijete čárky, vyhodnocují se podmínky pomocí logického operátoru "a".

Tip

Pokud je jedna tabulka vždy menší než druhá, pro zajištění nejlepšího výkonu ji použijte jako levou stranu spojení.

Tipy

Název parametrů Hodnoty Popis
hint.remote auto, left, local, right Viz Připojení mezi clustery
hint.strategy=broadcast Určuje způsob sdílení zatížení dotazů na uzlech clusteru. Viz připojení k vysílání
hint.shufflekey=<key> Dotaz shufflekey sdílí zatížení dotazu na uzlech clusteru pomocí klíče k dělení dat. Zobrazit dotaz náhodného shuffle
hint.strategy=shuffle Dotaz shuffle strategie sdílí zatížení dotazů na uzlech clusteru, kde každý uzel zpracovává jeden oddíl dat. Zobrazit dotaz náhodného shuffle

Návraty

Schéma: Všechny sloupce z obou tabulek, včetně odpovídajících klíčů.
Řádky: Pouze odpovídající řádky z obou tabulek.

Příklad

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

Výstup

Klíč Hodnota1 Klíč1 Hodnota2
b 3 b 10
b 2 b 10
c 4 c 20
c 4 c 30
k 5 k 50

Poznámka

  • (b,10) z pravé strany byl připojen dvakrát: s oběma (b,2) a (b,3) na levé straně.
  • (c,4) na levé straně byl připojen dvakrát: s oběma (c,20) a (c,30) na pravé straně.
  • (k,5) zleva a (k, 50) zprava byly jednou spojeny.