Join | Qlik Cloud Pomoc
Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Join

Prefiks join powoduje sprzężenie załadowanej tabeli z istniejącą tabelą nazwaną lub ostatnio utworzoną tabelą danych.

Efektem łączenia danych jest rozszerzenie tabeli docelowej o dodatkowy zestaw pól lub atrybutów, a mianowicie takich, które nie są jeszcze obecne w tabeli docelowej. Wszelkie wspólne nazwy pól między zestawem danych źródłowych a tabelą docelową są używane do określenia sposobu powiązania nowych przychodzących rekordów. Jest to powszechnie określane jako „naturalne złączenie” (natural join). Operacja złączenia Qlik może prowadzić do tego, że wynikowa tabela docelowa będzie miała więcej lub mniej rekordów niż na początku, w zależności od unikalności powiązania złączenia i zastosowanego typu złączenia.

video thumbnail

Typy złączeń

Istnieją cztery typy złączeń:

  • Left join

  • Inner join

  • Outer join

  • Right join

Przykładowe zestawy wyników z różnych typów operacji złączenia

Przykładowe zestawy wyników z różnych typów operacji złączenia, z przedstawieniem tabel danych przed i po każdej operacji. Dane wejściowe składają się z tabeli docelowej i przychodzącego zestawu danych. Tabela docelowa ma dwie kolumny z dwoma wpisami wierszy dla pól 'Trade ID' i 'Asset Class'. Przychodzące dane mają dwie kolumny z dwoma wpisami wierszy dla pól 'Trade ID' i 'Exchange'. Left Join zachowuje początkową tabelę docelową i dodaje trzecią kolumnę ze wszystkim pustym, z wyjątkiem dodania jednego z wpisów wiersza 'Exchange'. Inner Join tworzy tabelę z jednym wierszem Trade ID i trzecią kolumną, ponownie dla wpisu wiersza 'Exchange'. Outer Join zachowuje tabelę docelową i dodaje trzecią kolumnę, wraz z trzecim wierszem, do którego dołączany jest drugi wiersz przychodzącego zestawu danych. Right Join usuwa drugi wpis wiersza tabeli docelowej i zastępuje go informacjami z drugiego wpisu wiersza przychodzącego zestawu danych, dodając w procesie trzecią kolumnę.

Left join

Left join to najczęstszy typ złączenia. Na przykład, jeśli masz zestaw danych transakcyjnych i chcesz połączyć go z referencyjnym zestawem danych, zazwyczaj użyjesz Left Join. Najpierw załadujesz tabelę transakcji, a następnie załadujesz referencyjny zestaw danych, łącząc go za pomocą prefiksu Left Join z już załadowaną tabelą transakcji. Left Join zachowa wszystkie transakcje w niezmienionej formie i doda uzupełniające pola danych referencyjnych tam, gdzie znaleziono dopasowanie.

Left join

Diagram przedstawiający na wysokim poziomie kombinacje danych, które występują podczas left join.

Inner join

Jeśli masz dwa zestawy danych i interesują Cię tylko wyniki, w których istnieje pasujące powiązanie, rozważ użycie Inner Join. Spowoduje to wyeliminowanie wszystkich rekordów zarówno z załadowanych danych źródłowych, jak i z tabeli docelowej, jeśli nie znaleziono dopasowania. W rezultacie tabela docelowa może mieć mniej rekordów niż przed wykonaniem operacji złączenia.

Inner join

Diagram przedstawiający na wysokim poziomie kombinacje danych, które występują podczas inner join.

Outer join (domyślne)

Jeśli musisz zachować zarówno rekordy docelowe, jak i wszystkie rekordy przychodzące, użyj Outer Join. Tam, gdzie nie znaleziono dopasowania, każdy zestaw rekordów jest nadal zachowywany, podczas gdy pola po przeciwnej stronie złączenia pozostaną nieuzupełnione (null).

Jeśli słowo kluczowe typu zostanie pominięte, domyślnym typem złączenia jest outer join.

Outer join

Diagram przedstawiający na wysokim poziomie kombinacje danych, które występują podczas outer join.

Right join

Ten typ złączenia zachowuje wszystkie rekordy, które mają zostać załadowane, jednocześnie redukując rekordy w tabeli docelowej złączenia tylko do tych rekordów, dla których istnieje dopasowanie powiązania w rekordach przychodzących. Jest to niszowy typ złączenia, który jest czasami używany jako sposób na przycięcie już wstępnie załadowanej tabeli rekordów do wymaganego podzbioru.

Right join

Diagram przedstawiający na wysokim poziomie kombinacje danych, które występują podczas right join.

Cross join

InformacjaJeśli między źródłem a celem operacji złączenia nie ma wspólnych nazw pól, złączenie spowoduje iloczyn kartezjański wszystkich wierszy – nazywa się to „cross join”.

Przykładowy zestaw wyników operacji "cross join"

Porównanie danych wejściowych przed i po z wynikami po operacji cross join (która może obejmować operację złączenia dowolnego typu). Dane wejściowe to tabela docelowa i przychodzący zestaw danych. Tabela docelowa składa się z trzech kolumn z dwoma wpisami wierszy. Kolumny to 'Trade ID', 'Base Currency' i 'Amount'. Przychodzący zestaw danych ma dwie kolumny ('Trade Currency' i 'Rate') oraz dwa wpisy wierszy. Wynikowa tabela ma pięć kolumn, którymi są 'Trade ID', 'Base Currency', 'Amount', 'Target Currency' i 'Rate'. Istnieją cztery wpisy wierszy, łączące wszystkie dane. Każdy wpis 'Trade ID' ma dwa wiersze z różnymi danymi w pozostałych polach.

Składnia i argumenty

[inner | outer | left | right ]Join [ (tablename ) ]( loadstatement | selectstatement )

Argumenty
Argument Opis
tablename Tabela nazwana, która ma być porównana do załadowanej tabeli.
loadstatementlub selectstatement Instrukcja LOAD lub SELECT dla załadowanej tabeli.

Powiązane tematy

Te tematy mogą pomóc w pracy z tą funkcją:

Powiązane tematy
Temat Opis
Łączenie tabel operatorami Join i Keep Ten temat zawiera dalsze wyjaśnienie koncepcji „łączenia” (joining) i „zachowywania” (keeping) zestawów danych.
Keep Prefiks ładowania Keep jest podobny do prefiksu Join, ale nie łączy źródłowych i docelowych zestawów danych. Zamiast tego przycina każdy zestaw danych zgodnie z typem przyjętej operacji (inner, outer, left lub right).

Przykłady skryptu ładowania - Left join

Left join zachowuje wszystkie rekordy z głównej (docelowej) tabeli i dodaje pasujące dane z drugiej (źródłowej) tabeli. Jeśli nie ma dopasowania w źródle, rekord głównej tabeli nadal się pojawia, ale z pustymi polami z tabeli źródłowej.

Przykłady skryptu ładowania - Inner join

Inner join zachowuje tylko rekordy, które istnieją w obu tabelach (na podstawie pasujących wartości pól).

Przykłady skryptu ładowania - Outer join

Outer join zachowuje wszystkie rekordy z obu tabel. Tam, gdzie nie ma dopasowania, pola pozostają puste.

Przykłady skryptu ładowania - Right join

Right join zachowuje wszystkie rekordy z tabeli źródłowej i dodaje pasujące informacje z tabeli docelowej. Jeśli tabela docelowa nie ma dopasowania, pola z niej są puste.

Rozwiązywanie problemów - Cross join

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać!