Sfairadora

  • Referenční příručka

Připojení tabulky

Operací připojení tabulky lze k řádkům jedné tabulky připojit informace pocházející z tabulky jiné. Operace se vyvolá pomocí příkazu Připojit tabulku z kontextové nabídky tabulky, ke které se má druhá připojit. Tímto příkazem se otevře okno umožňující upřesnit, která tabulka a jakým způsobem se má připojit. V následujícím přehledu jsou shrnuty parametry, které je v okně třeba nastavit:
Položka
Popis
Připojovaná tabulka
Název dat
Jméno objektu, ve kterém leží připojovaná tabulka. V naprosté většině případů stačí ponechat předvyplněné jméno document – připojovaná tabulka leží v témže dokumentu, jako tabulka, ke které se připojuje.
Reference dat
Reference na tabulku v rámci objektu. Lze ji vybrat z nabízeného seznamu.
Relace mezi sloupci základní a připojované tabulky
Cílem operace je připojit ke každému řádku stávající tabulky vhodné řádky připojované tabulky. Zde se zadávají podmínky, které musí splnit připojované řádky, aby byly k danému řádku základní tabulky skutečně připojeny. K zadání těchto podmínek se vyplňuje tabulka o třech sloupcích: 1. název sloupce v připojované tabulce 2. relace 3. název sloupce v základní tabulce. K danému řádku základní tabulky se připojí jen ty řádky připojované tabulky, kde dané dvě hodnoty jsou v požadované relaci. Relace na výběr jsou stejné jako ve filtru tabulky.
Rozeskupit připojenou tabulku
Pokud není políčko zaškrtnuto, jsou řádky z připojované tabulky umístěny do podtabulky každého řádku tabulky, k níž se připojuje. Pokud je zaškrtnuto, po připojení se podtabulky rozeskupí. Pokud by byla některá podtabulka prázdná, vypustí se při rozeskupení i příslušný řádek, který ji obsahuje.
Zvolit možnost rozeskupení je vhodné v případě, kdy bude ke každému řádku základní tabulky připojen vždy právě jeden řádek připojované tabulky. Rozeskupením se tedy tyto dva řádky spojí do jednoho, což je lepší, než aby druhý byl jako jediný v podřízené tabulce prvního.
Název sloupce
Pokud není označena možnost Rozeskupit připojovanou tabulku, je zde možné zadat název sloupce, do kterého budou umístěny řádky připojovaná tabulky. Pokud není zadán, bude se sloupec jmenovat připojené.

Příklad 1

Tabulka objednávky:
Jméno
Dodání
Kód_zboží
Adam Malý
1.2.2007
1
Bedřich Nový
5.3.2007
2
Cecílie Otylá
20.2.2007
1
Daniel Pokorný
17.2.2007
3
Eliška Rozkošná
2.3.2007
2
František Smutný
10.2.2007
3
Tabulka zboží:
Kód
Název
Cena
1
Mixér
1200
2
Váha
2380
3
Pánev
1560
Pokud bychom chtěli i v základní tabulce kromě kódů zboží zobrazit i podrobnosti o zboží z druhé tabulky, připojíme druhou tabulku k první. Jako relaci mezi sloupci základní a připojované tabulky uvedeme: Kód = Kód_zboží. Vzhledem k tomu, že víme, že pro každou řádku základní tabulky bude existovat právě jedna řádka tabulky připojované, označíme možnost Rozeskupit připojovanou tabulku.
Tabulka objednávky po připojení tabulky zboží:
Jméno
Dodání
Kód_zboží
Kód
Název
Cena
Adam Malý
1.2.2007
1
1
Mixér
1200
Bedřich Nový
5.3.2007
2
2
Váha
2380
Cecílie Otylá
20.2.2007
1
1
Mixér
1200
Daniel Pokorný
17.2.2007
3
3
Pánev
1560
Eliška Rozkošná
2.3.2007
2
2
Váha
2380
František Smutný
10.2.2007
3
3
Pánev
1560
V tomto případě by bylo ještě vhodné sloupce Kód_zboží a Kód skrýt.

Příklad 2

Uvažme tabulku zákazníci, která má mj. sloupec bonus. V druhé tabulce s názvem dárky budou možné věrnostní odměny. Mj. bude obsahovat sloupec min_bonus udávající minimální bonus nutný k získání daného dárku. Pokud chceme pro každého zákazníka zobrazit seznam možných dárků, připojíme k tabulce zákazníci tabulku dárky. Jako relaci mezi sloupci základní a připojované tabulky uvedeme: min_bonus bonus. Vzhledem k tomu, že k jednomu řádku tabulky zákazníci může být připojeno více řádků tabulky dárky (nebo také žádný), neoznačíme možnost Rozeskupit připojovanou tabulku. Pokud jsou mezi připojenými sloupci takové, které nepotřebujeme, lze je z pohledu odstranit. Samozřejmě není možné z pohledu odstranit sloupce, které jsou použity pro vyjádření relace mezi tabulkami (v tomto případě bonus a min_bonus).

Příklad 3

Mějme tabulku lidé se sloupcem věk. Chceme u každého člověka znát seznam lidí, kteří jsou mladší než on. Provedeme tedy připojení tabulky, a to tak, že k tabulce lidé připojíme zase ji samu. Jako relaci mezi sloupci základní a připojované tabulky uvedeme: věk < věk.

Poznámka

Operace připojení tabulky je ekvivalentní operaci JOIN relačních databází.