Złączenie wielu tabel
Krok Złączenie wielu tabel łączy wiele tabel (do 32) w jednej operacji za pomocą wizualnego projektanta grafu złączeń, zastępując wzorzec łączenia w łańcuch kilku kroków złączeń dwóch tabel. Dodajesz tabele, rysujesz złączenia między ich kolumnami, wybierasz typ złączenia i warunki dla każdego złączenia oraz mapujesz kolumny wyjściowe. Edytor ma trzy karty: Tables & Joins, Kolumny wyjściowe i Post-Join Filter.
Pełny opis krok po kroku znajdziesz w przewodniku po kroku Złączenie wielu tabel.
Projektant
Dział zatytułowany „Projektant”- Dodaj tabelę — umieść tabelę źródłową na kanwie jako kartę kolumn. Każda tabela ma alias (używany jako
alias.column), który musi zaczynać się od litery lub podkreślenia i nie może być słowem kluczowym SQL. - Tabela docelowa — tabela, do której zapisywany jest złączony wynik; jest tworzona, jeśli nie istnieje.
- Dynamiczny — podaj źródło lub cel jako odwołanie zamiast wybierać: nazwę tabeli, ścieżkę projektu (
/03 Results/FACT_GL) lub jedno z nich zawierające tokeny{variable}rozwiązywane w czasie uruchomienia. Kolumn dynamicznego źródła nie można odczytać na etapie projektowania, więc wpisuje się je ręcznie w panelu bocznym. - Rysowanie złączeń — przeciągnij od kropki kolumny w jednej tabeli do kolumny w innej, aby utworzyć złączenie; opcjonalna Etykieta nazywa krawędź.
- Filtr wejściowy — filtr dla pojedynczej tabeli stosowany przed złączeniem.
- Pobierz ponownie z serwera — odśwież kolumny karty tabeli na podstawie najnowszego katalogu.
- Uporządkuj układ / Dopasuj do widoku — automatycznie rozmieść graf lub dopasuj powiększenie; przesuwanie i powiększanie są też dostępne ręcznie.
- Cofnij / Ponów / Historia — przechodź przez zmiany, przeglądaj je i przywracaj.
- Filtruj kolumny… — zawęź kolumny wyświetlane na karcie tabeli.
- Eksportuj — pobierz diagram złączeń jako plik SVG.
Typy złączeń
Dział zatytułowany „Typy złączeń”| Typ | Zachowuje |
|---|---|
INNER |
Wiersze, które pasują w złączanych tabelach. |
LEFT |
Wszystkie wiersze z tabeli lewej, dopasowane wiersze z prawej. |
FULL |
Wszystkie wiersze z obu tabel. |
CROSS |
Każdą kombinację wierszy (warunki niedozwolone). |
Warunki
Dział zatytułowany „Warunki”Każde złączenie inne niż krzyżowe ma jeden lub więcej warunków połączonych operatorami AND / OR, z użyciem operatorów =, <>, <, <=, >, >=, BETWEEN, IS NULL, IS NOT NULL, IN, NOT IN, LIKE, NOT LIKE.
Warunek może wskazywać kolumnę, której nazwa zawiera spacje lub znaki interpunkcyjne, na przykład Build Plant lub Cust (Id); kolumna musi istnieć w tym wejściu. Nazwy zawierające cudzysłów, odwrotny apostrof, ukośnik odwrotny lub znak sterujący są odrzucane.
W przypadku BETWEEN granica zapisana jako alias wejścia, kropka i kolumna (cust.Max Id) jest odczytywana jako kolumna tego wejścia. Każda inna granica jest tekstem dosłownym, także sam alias bez kropki. Granica tekstowa zaczynająca się od aliasu i kropki, taka jak cust.2024, gdy wejście ma alias cust, jest więc odczytywana jako kolumna i zgłaszana jako brakująca.
Dane wyjściowe
Dział zatytułowany „Dane wyjściowe”Na karcie Kolumny wyjściowe mapujesz kolumny wynikowe; w razie potrzeby zmieniasz nazwy, ustawiasz typ danych i agregujesz. Kolumny o tych samych nazwach otrzymują automatycznie prefiks z aliasem źródła, aby uniknąć kolizji.
Każdy wiersz pobiera wartość z dokładnie jednego z trzech pól — ustawienie więcej niż jednego lub żadnego jest odrzucane:
| Rodzaj | Pola |
|---|---|
| Kolumna źródłowa | Alias źródła (alias kanwy, do którego należy kolumna) oraz Źródło (alias.column). Oba wymagane. |
| Stała | Stała — ta sama stała wartość w każdym wierszu. |
| Wyrażenie | Wyrażenie — wyrażenie SQLAlchemy, które może odwoływać się do dowolnego aliasu kanwy jako alias.column. |
- Wybierz z obszaru roboczego… — zaznacz kolumny ze wszystkich źródeł na kanwie.
- Dodaj wszystkie kolumny źródłowe — dołącz każdą kolumnę z każdego źródła.
- Dodaj kolumnę wyrażenia — dołącz wiersz wyrażenia i otwórz edytor wyrażeń.
Karta Post-Join Filter stosuje opcjonalny filtr do złączonego wyniku (odpowiednik SQL HAVING) przed jego zapisaniem; jest edytowana w tym samym edytorze wyrażeń. Odwołuje się do kolumn wyjściowych jako result.column_name; aliasy źródeł są tam poza zakresem.
Kolumny nazwane w czasie wykonania
Dział zatytułowany „Kolumny nazwane w czasie wykonania”Zaznacz Przenieś także kolumny nazwane w czasie wykonania, aby przekazać bez zmian każdą kolumnę źródłową, której krok nie wymienia, w takiej postaci, w jakiej tabela ją ma w chwili uruchomienia kroku. Użyj tej opcji, gdy wcześniejszy krok tworzy kolumny, których nazwy zależą od danych (na przykład przestawienie), więc nie można ich wymienić podczas budowania kroku. Pozostaw ją wyłączoną, aby zapisać tylko wymienione kolumny.
Zachowanie
Dział zatytułowany „Zachowanie”- Graf złączeń jest drzewem: każda tabela łączy się z wynikiem dokładnie jedną krawędzią (bez cykli), a tabela nie może łączyć się sama ze sobą.
- Konfiguracja jest walidowana zarówno przy zapisie kroku, jak i podczas jego uruchomienia; błędy oznaczają problematyczną tabelę lub złączenie znacznikiem ⚠, nieudany zapis przełącza na kartę zawierającą pierwszy problem, a Przejdź do problemu przenosi tam na żądanie. Wyrażenia kolumn wyjściowych i Post-Join Filter są sprawdzane przy zapisie; złączenie, które przenosi kolumny nazwane w czasie wykonania, pomija sprawdzenie wyrażeń przy zapisie i jest sprawdzane podczas uruchomienia kroku.