sprzężenia fullouter

Sprzężenie fullouter łączy efekt zastosowania sprzężeń zarówno lewej, jak i prawej sprzężenia zewnętrznego. W przypadku kolumn tabeli, które nie mają pasującego wiersza, zestaw wyników zawiera null wartości. W przypadku tych rekordów, które są zgodne, pojedynczy wiersz jest generowany w zestawie wyników zawierającym pola wypełnione z obu tabel.

Diagram przedstawiający sposób działania sprzężenia.

Składnia

LeftTable|joinkind=fullouter [ Wskazówki ] RightTableonWarunki

Dowiedz się więcej o konwencjach składniowych.

Parametry

Nazwa Typ Wymagane Opis
LeftTable string ✔️ Lewa tabela lub wyrażenie tabelaryczne, czasami nazywane tabelą zewnętrzną, której wiersze mają być scalane. Oznaczono jako $left.
Wskazówki string Zero lub więcej wskazówek sprzężenia rozdzielanych spacjami w postaci wartości nazwy=, które kontrolują zachowanie operacji dopasowania wiersza i planu wykonania. Aby uzyskać więcej informacji, zobacz Wskazówki.
RightTable string ✔️ Prawa tabela lub wyrażenie tabelaryczne, czasami nazywane tabelą wewnętrzną, której wiersze mają być scalane. Oznaczono jako $right.
Warunki string ✔️ Określa, jak wiersze z tabeli LeftTable są dopasowywane do wierszy z tabeli RightTable. Jeśli kolumny, które chcesz dopasować, mają taką samą nazwę w obu tabelach, użyj składni ONNazwakolumny. W przeciwnym razie użyj składni ON $left.LeftColumn RightColumn==$right.. Aby określić wiele warunków, możesz użyć słowa kluczowego "and" lub oddzielić je przecinkami. Jeśli używasz przecinków, warunki są oceniane przy użyciu operatora logicznego "and".

Porada

Aby uzyskać najlepszą wydajność, jeśli jedna tabela jest zawsze mniejsza niż druga, użyj jej jako lewej strony sprzężenia.

Wskazówki

Nazwa parametrów Wartości Opis
hint.remote auto, left, local, right Zobacz sprzężenia między klastrami
hint.strategy=broadcast Określa sposób udostępniania obciążenia zapytania w węzłach klastra. Zobacz dołączanie do emisji
hint.shufflekey=<key> Zapytanie shufflekey współudzieli obciążenie zapytania w węzłach klastra przy użyciu klucza do partycjonowania danych. Zobacz zapytanie shuffle
hint.strategy=shuffle shuffle Zapytanie strategii współudzieli obciążenie zapytania w węzłach klastra, gdzie każdy węzeł przetwarza jedną partycję danych. Zobacz zapytanie shuffle

Zwraca

Schemat: wszystkie kolumny z obu tabel, w tym pasujące klucze.
Wiersze: wszystkie rekordy z obu tabel z niedopasowanych komórek wypełnionych wartością null.

Przykład

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

Dane wyjściowe

Klucz Wartość1 Klucz1 Wartość2
a 1
b 2 b 10
b 3 b 10
c 4 c 20
c 4 c 30
d 40