Office
Přihlásit se

Spojení tabulek a dotazů

Poznámka:  Snažíme se pro vás co nejrychleji zajistit aktuální obsah nápovědy ve vašem jazyce. Tato stránka byla přeložena automaticky a může obsahovat gramatické chyby nebo nepřesnosti. Naším cílem je to, aby pro vás byl její obsah užitečný. Mohli byste nám prosím dát ve spodní části této stránky vědět, jestli vám informace v článku pomohly? Pokud byste se rádi podívali na jeho anglickou verzi, najdete ji tady .

Pokud zahrnete víc zdrojů dat v dotazu Accessu, použijte spojení potřebujete omezit záznamy, které chcete zobrazit, podle souvislost zdrojů dat na sobě. Můžete taky použitím spojení ke kombinování záznamy z obou zdrojích dat tak, aby každý pár obsahující záznamy ze zdroje stalo jeden záznam ve výsledcích dotazu.

Tento článek popisuje různé typy spojení a ukazuje, jak je lze používat v dotazu. Ve výchozím nastavení se spojení automaticky vytvoří Pokud je už relace mezi dva zdroje dat, které používáte v dotazu. Spojení je vytvořen také pokud existují pole, která jasně odpovídají sobě. Automaticky vytvořené spojení můžete odstranit. Tento článek obsahuje základní informace o relací mezi tabulkami, včetně jak ho vytvořit.

Poznámka: Připojení dotazů v stejným způsobem jako připojení tabulkách a taky můžete připojit obojí.

V tomto článku

Základní informace

Typy spojení

Zobrazení řádků se společnou hodnotou v obou spojených tabulkách

Zobrazení všech řádků z jedné tabulky a odpovídajících řádků z druhé tabulky

Zobrazení všech řádků z obou tabulek a jejich spojením, pokud existuje společná hodnota

Křížová spojení

Připojit se ke tabulky založené na nerovnosti hodnot polí

Odstranění spojení

Základní informace

Databázi je kolekce tabulek s daty, která nesete logické vztahy mezi sebou. Připojení tabulkách tak, že pole, která mají společné pomocí relace. Tabulka může být součástí libovolný počet relace, ale konkrétních vztahů vždy obsahovat přesně dvě tabulky. V dotazu představuje relace spojení.

Po přidání tabulky do dotazu Access vytvoří spojení, které jsou založeny na relace, která byla definována mezi tabulkami. Můžete ručně vytvořit spojení v dotazech, i když není představují relace, které již byly definovány. Pokud používáte jiné dotazy (místo něj nebo spolu tabulek) jako zdroje dat pro dotaz, můžete vytvořit spojení mezi dotazů zdroje a také mezi těmito dotazy a všechny tabulky, které použijete jako zdroj dat.

Spojení se podobají kritéria dotazu v tom, že vytváří pravidla, která data se musí shodovat mají být součástí operací dotazu. Na rozdíl od kritérií spojení taky určit, že každou dvojici řádky, které splňují podmínky spojení spojí v sadě záznamů sloučena do jednoho řádku.

Existují čtyři základní typy spojení: vnitřní spojení, vnější spojení, křížového spojení a nerovná spojení. Tento článek popisuje jednotlivé typy spojení, které můžete použít, důvod, proč použijete jednotlivých typů a jak vytvořit spojení.

Spojení představují pro dotazy to samé, co pro tabulky představují relace: udávají, jak lze zkombinovat data ze dvou zdrojů na základě společných hodnot. Zde je znázornění spojení v návrhovém zobrazení dotazu, s otevřeným dialogovým oknem vlastností spojení:

Okno Vlastnosti spojení.

Tento řádek mezi tabulkami představuje spojení. Poklikejte na spojení otevřete dialogové okno Vlastnosti spojení (je vidět) a kontrola nebo změna spojení.

Spojení jsou někdy směrová. Tato oblast dialogového okna identifikuje tabulky ve spojení a ukazuje, která pole jsou použita ke spojení tabulek.

Tato oblast určuje typ spojení: možnost 1 je vnitřní spojení, možnost 2 je levé vnější spojení a možnost 3 je pravé vnější spojení.

Lze použít pole z obou tabulek a z každé z nich jsou zobrazena data přiřazená k danému úkolu. Ve vnitřním spojení nejsou zahrnuta žádná další data. Ve vnějším spojení jsou ve výsledcích dotazu rovněž zahrnuty nesouvisející záznamy z jedné tabulky.

Začátek stránky

Typy spojení

Existují čtyři základní typy spojení: vnitřní spojení, vnější spojení, křížové spojení a nerovné spojení. Křížová spojení a nerovná spojení jsou pokročilé typy spojení a jsou používána velmi zřídka. Abyste však plně rozuměli tomu, jak spojení fungují, měli byste tyto typy znát.

Vnitřní spojení: pouze související data z obou zkombinovaných tabulek

Vnitřní spojení je případ, kdy aplikace Access zahrne data z tabulky pouze tehdy, když se v tabulce propojené pomocí relace nachází související data, a opačně. Většinu času budete používat vnitřní spojení. Když vytvoříte spojení a neurčíte, o jaký typ se jedná, aplikace Access předpokládá, že chcete vnitřní spojení. Vnitřní spojení jsou užitečná, protože umožňují kombinování dat ze dvou zdrojů na základě sdílených hodnot. Data tedy vidíte pouze tehdy, když je k dispozici úplný obraz.

Vnější spojení: správně zkombinovaná veškerá související data spolu se zbývajícími záznamy z jedné tabulky

Vnější spojení je podobné vnitřnímu spojení, ale přidává zbývající řádky z jedné z tabulek. Vnější spojení jsou směrová: levné vnější spojení zahrnuje všechny záznamy z levé tabulky (první tabulka ve spojení) a pravé vnější spojení zahrnuje všechny záznamy z pravé tabulky (druhá tabulka ve spojení).

Plná vnější spojení: všechna data, zkombinována kde je to vhodné

V některých systémech může vnější spojení zahrnovat všechny řádky z obou tabulek, se zkombinovanými odpovídajícími řádky. Toto spojení se nazývá úplné vnější spojení a aplikace Access je explicitně nepodporuje. K dosažení stejného účinku však můžete použít křížové spojení a kritéria.

Křížová spojení: všechna data, zkombinovaná všemi možnými způsoby

Většinu času je křížové spojení vedlejším účinkem přidání dvou tabulek do dotazu, když je poté zapomenete spojit. Aplikace Access takovou situaci interpretuje tak, že chcete vidět všechny záznamy z jedné tabulky zkombinované se všemi záznamy z druhé tabulky – všechny možné kombinace záznamů. Protože nelze zkombinovat žádná data, tento druh spojení většinou neposkytuje užitečné výsledky. Existuje však několik případů, kdy je křížové spojení přesně to, co potřebujete.

Nerovná spojení: stejně jako u běžného spojení, ale s využitím jiného porovnání pro zkombinování řádků

Nerovná spojení využívají k porovnávání hodnot a k určování, zda a jak zkombinovat data, jiný operátor, než je rovnítko (=). Nerovná spojení nejsou explicitně podporována, ale k dosažení stejného účinku můžete použít křížové spojení a kritéria.

Zobrazení řádků se společnou hodnotou v obou spojených tabulkách

Pokud chcete zobrazit pouze ty řádky, které mají ve spojeném poli odpovídající hodnoty, můžete použít vnitřní spojení. Aplikace Access vytváří vnitřní spojení automaticky.

Nejběžnější typ spojení je vnitřní spojení. Dotazu informaci, že řádky z jednoho z spojených tabulkách odpovídají řádkům v jiné tabulce, na základě dat v polích spojení. Při spuštění dotazu pomocí vnitřního spojení jenom ty řádky, pokud existuje společná hodnota v obou spojených tabulkách součástí operací dotazu.

Postup při použití vnitřního spojení

Použití vnitřního spojení většinou nevyžaduje žádnou akci. Pokud již tabulky, které přidáváte do dotazu, mají relace, aplikace Access při přidávání tabulek automaticky mezi každou dvojicí tabulek propojených relací vytvoří vnitřní spojení. Pokud je zajištěna Referenční integrita, je nad čarou spojení u Relace 1:N zobrazena číslice 1 označující tabulku na straně 1 a symbol nekonečna (?) označující tabulku na straně N.

I když jste ještě nevytvořili relace, Access automaticky vytvoří vnitřní spojení, pokud a přidáte do dotazu dvě tabulky obsahující pole se stejným nebo kompatibilní datovým typem a jedno z těchto polí je Primární klíč. Symboly "jeden" a "n" nezobrazí v tomto případě, protože není zajistit referenční integritu.

Pokud přidáte do dotazu a nevytvořili vztahy mezi těmito dotazy, Access automaticky nevytvoří vnitřní spojení mezi tyto dotazy nebo dotazů a tabulek. Obecně můžete vytvořit sami. Vytvoříte přetažením pole z jednoho zdroje dat s polem na jiném zdroji dat vnitřního spojení. Aplikace Access zobrazí spojnici mezi dvěma poli zobrazíte vytvořené spojení.

Syntaxe jazyka SQL pro vnitřní spojení

Vnitřní spojení jsou v jazyku SQL definovány klauzulí FROM, jak je ukázáno v následujícím příkladu:

FROM tabulka1 INNER JOIN tabulka2 ON tabulka1. pole1 porovnání tabulka2. pole2

Operace INNER JOIN se skládá z těchto částí:

Část

Popis

tabulka1, tabulka2

Názvy tabulek, ze kterých jsou slučovány záznamy

pole1, pole2

Názvy slučovaných polí. Nejedná-li se o číselná pole, musí mít obě pole stejný Datový typ a obsahovat stejný druh dat, názvy polí se však nemusejí shodovat.

porovnání

Libovolný relační porovnávací operátor: "=," "<," ">," "<=," ">=," nebo "<>."

Další informace o syntaxi vnitřního spojení naleznete v tématu Operace INNER JOIN.

Začátek stránky

Zobrazení všech řádků z jedné tabulky a odpovídajících řádků z druhé tabulky

Vnější spojení poznat, dotazu, i když některé řádky na obou stranách spojení přesně odpovídají, dotaz by měl obsahovat všech řádků z jedné tabulky a řádků z druhé tabulky, které sdílejí společnou hodnotou v obou stranách spojení.

Vnější spojení jsou mohou být levá nebo pravá. Při levém vnějším spojení bude dotaz zahrnovat všechny řádky z tabulky, která je první tabulkou v klauzuli FROM příkazu SQL, a z druhé tabulky pouze řádky, ve kterých spojené pole obsahuje hodnoty shodné v obou tabulkách. Při pravém vnějším spojení bude dotaz zahrnovat všechny řádky z tabulky, která je druhou tabulkou v klauzuli FROM příkazu SQL, a z první tabulky pouze řádky, ve kterých spojené pole obsahuje hodnoty shodné v obou tabulkách.

Poznámka: Můžete snadno zjistit, tabulky, která je levá tabulka nebo pravá tabulka v daném spojení poklepáním spojení a potom vyhledává v dialogovém okně Vlastnosti spojení. Můžete taky přepnout do zobrazení SQL a zkontrolujte klauzule FROM.

Vzhledem k tomu, že některé řádky na jedné straně vnějšího spojení neodpovídají řádkům z druhé tabulky, budou některá pole ve vrácených výsledcích dotazu z druhé tabulky pro tyto řádky prázdná.

Postup při použití vnějšího spojení

Vnější spojení vytvoříte úpravou stávajícího vnitřního spojení. Pokud neexistuje žádné vnitřní spojení, vytvoříte jej a změníte jej na vnější spojení.

Změna vnitřního spojení na vnější spojení

  1. V návrhovém zobrazení dotazu poklikejte na spojení, které chcete změnit.

    Zobrazí se dialogové okno Vlastnosti spojení.

  2. V dialogovém okně Vlastnosti spojení si všimněte možností uvedených vedle možnost 2 a možnost 3.

  3. Klikněte na požadovanou možnost a potom klikněte na OK.

  4. Zobrazí se spojení se šipkou směřující od zdroje dat, který zahrnuje všechny řádky, ke zdroji, který zahrnuje pouze řádky vyhovující podmínce spojení.

Dvojznačná vnější spojení

Pokud vytvoříte dotaz, který obsahuje LEFT JOIN a vnitřního spojení, Access nebudete moci určit, ve které připojení operace má provést jako první. Protože výsledky se liší podle toho, zda levé spojení nebo vnitřní spojení je provedena první, zobrazí se chybová zpráva:

Tuto chybu napravíte musí změnit dotazu tak, aby bylo jasné, které spojení se má provést jako první.

Syntaxe jazyka SQL pro vnější spojení

Vnější spojení jsou v jazyku SQL definovány klauzulí FROM, jak je ukázáno v následujícím příkladu:

FROM tabulka1 [vlevo | PRAVÝ] JOIN tabulka2
na tabulka1.pole1 porovnání Tabulka2.pole2

Operace LEFT JOIN a RIGHT JOIN mají následující části:

Část

Popis

tabulka1, tabulka2

Názvy tabulek, ze kterých jsou slučovány záznamy

pole1, pole2

Názvy slučovaných polí. Pole musí mít stejný Datový typ a obsahovat stejný druh dat, názvy polí se však nemusejí shodovat.

porovnání

Libovolný relační porovnávací operátor: "=," "<," ">," "<=," ">=," nebo "<>."

Další informace o syntaxi vnějšího spojení naleznete v tématu LEFT JOIN, operací spojení doprava.

Začátek stránky

Zobrazení všech řádků z obou tabulek a jejich spojením, pokud existuje společná hodnota

Když budete chtít zobrazení všech řádků z obou tabulek a jejich běžné hodnotami spojením, použijte úplného vnějšího spojení. Aplikace Access podporuje explicitně úplného vnějšího spojení, ale stejného účinku dosáhnete pomocí sjednocovacího dotazu. Následující postup vysvětluje, jak to udělat, ale pokud chcete získat další informace o sjednocovacích dotazech najdete v části Viz také.

Použití sjednocovacího dotazu k provedení úplného vnějšího spojení:

  1. Vytvořte dotaz, který obsahuje levé vnější spojení v poli, které chcete použít pro úplné vnější spojení.

  2. Na kartě Domů klikněte ve skupině Zobrazení na tlačítko Zobrazení a potom na položku Zobrazení SQL.

  3. Stiskněte kombinaci kláves CTRL + C zkopírujte kód SQL.

  4. Odstraňte středník na konci klauzule FROM a stiskněte klávesu ENTER.

  5. Zadejte klauzuli UNION a stiskněte Enter.

    Poznámka: Při použití sjednocovacího dotazu k provedení úplného vnějšího spojení nepoužívejte klíčové slovo ALL.

  6. Stisknutím kláves CTRL + V vložte kód SQL, který jste zkopírovali v kroku 3.

  7. Ve vloženém kódu změňte klíčová slovo LEFT JOIN na RIGHT JOIN.

  8. Odstraňte středník na konci druhé klauzule FROM a pak stiskněte klávesu ENTER.

  9. Přidejte klauzuli WHERE, která určí, že hodnota pole spojení v první tabulce obsažené v klauzuli FROM (levá tabulka) je NULL.

    Pokud bude například klauzule FROM vypadat takto:

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    Přidáte tuto klauzuli WHERE:

    WHERE Products.ID IS NULL

  10. Zadáním středníku (;) na konec klauzule WHERE označte konec sjednocovacího dotazu.

  11. Na kartě Návrh klikněte ve skupině Výsledky na tlačítko Spustit.

Křížová spojení

Křížové spojení se liší od vnitřní a vnější spojení, že nejsou explicitně znázorněno v Access. V křížového spojení všech řádků z jedné tabulky zkombinovat s jednotlivých řádků z druhé tabulky, výsledkem je takzvaný křížový součin kartézský součin. Při každém spuštění dotazu, který neobsahuje tabulky, které nejsou spojeny explicitně, křížový součin je výsledek. Křížové spojení jsou obvykle Nezáměrný, ale jsou případy, kdy může být užitečné.

Důvody použití křížového spojení

Pokud chcete zjistit všechny možné kombinace řádků mezi dvěma tabulek nebo dotazů, použití křížového spojení. Předpokládejme například, vyhovovaly má a zvažujete a kdy je třeba zajistit se vaši zákazníci. Můžete vytvořit dotaz, který sečte nákupy jednotlivé zákazníky, vytvořit malou tabulku s několika různými variantami procentuální a sloučení dvou jiný dotaz, který provádí křížového spojení. Můžete to nakonec znamenat dotaz, který se vám zobrazí několik hypotetické slev pro jednotlivé zákazníky.

Postup při použití křížového spojení

Křížového spojení je vytvořeno pokaždé, když do dotazu zahrnout tabulek nebo dotazů a Ne vytvoříte alespoň jeden explicitní připojit se pro každou tabulku nebo dotaz. Aplikace Access zkombinuje všech řádků z každou tabulku nebo dotaz, který není výslovně připojen k jiné tabulky nebo dotazu pro každý druhý řádek ve výsledcích. Zvažte scénář slevě z předchozího odstavce. Předpokládejme, máte 91 zákazníků a chcete zobrazit pět různými variantami procentuální. Křížové spojení vytvoří 455 řádky (součin 91 a 5).

Jak můžou představit, Nezáměrný křížového spojení můžete vytvořit velmi velký počet řádků ve výsledcích vašeho dotazu. Kromě toho tyto výsledky se obecně význam, protože pokud nechcete skutečně zkombinovat každý řádek s každý druhý řádek, maximálně kombinované řádky, které se zobrazí ve výsledcích nebude smysl. Nakonec dotazy, které používají Nezáměrný křížového spojení může trvat velmi dlouho spustit.

Nezáměrné křížové spojení v návrhovém zobrazení dotazu
Nezáměrné křížové spojení v návrhovém zobrazení dotazu.

1. v kroužku pole by měl být připojen k sobě.

Nezáměrný křížový součin
Křížový součin vrácený Nezáměrný křížového spojení je vidět nad.

1. Poznámka velkého počtu zobrazených záznamů.

Opravený výsledek dotazu
Výsledek po vytvoření správného spojení.

1. Všimněte si, že počtu zobrazených záznamů mnohem menší.

Začátek stránky

Připojit se ke tabulky založené na nerovnosti hodnot polí

Spojení nemusí být založena rovnocennosti spojených polí. Spojení může být založeno na libovolném porovnávacím operátoru, jako například je větší než (>), menší než (<) nebo není rovno (<>). Spojení, která nejsou založena na rovnocennosti se nazývají nerovná spojení.

Nerovné spojení použijte, pokud chcete kombinovat řádky ze dvou zdrojů dat na základě hodnot polí, které nejsou shodné. Nerovná spojení jsou typicky založena na některém z následujících operátorů porovnání: je větší než (>), je menší než (<), je větší než nebo rovno (>=) nebo je menší než nebo rovno (<=). Počet řádků vrácených nerovným spojením založeným na operátoru není rovno (<>) může být téměř shodný jako v případě křížového spojení a interpretace výsledků může být obtížná.

Postup při použití nerovného spojení

Nerovná spojení nejsou podporovány v návrhovém zobrazení. Pokud chcete používat, musí provedete pomocí zobrazení SQL. Však můžete vytvořit spojení v návrhovém zobrazení, přepněte do zobrazení SQL, najdete je rovno (=) relační operátor a změňte ho na operátor, který chcete použít. Až to uděláte, můžete můžete jenom otevřete dotaz v návrhovém zobrazení znovu Pokud je první změna zpět relační operátor rovná se (=) v zobrazení SQL.

Odstranění spojení

Pokud aplikace Access automaticky vytvoří spojení, které nechcete, nebo pokud spojení vytvoříte omylem (například spojení mezi dvěma poli, která mají nepodobné datové typy), můžete toto spojení odstranit.

  1. V návrhové mřížce dotazu klikněte na spojení, které chcete odebrat.

  2. Stiskněte klávesu DELETE.

– nebo –

  • V návrhové mřížce dotazu klikněte pravým tlačítkem myši na spojení, které chcete odebrat a potom klikněte na Odstranit.

Začátek stránky

Viz taky

Přidání záznamů do tabulky pomocí přidávacího dotazu

Zkombinovat výsledků několika vyberte dotazů pomocí sjednocovacího dotazu

Vytvořit dotaz založený na více tabulek

Vytvoření, úprava nebo odstranění relace

Rozšiřte své dovednosti s Office
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×