Vyzkoušejte to!
Někdy v dotazech chcete zobrazit všechny záznamy z jedné tabulky spolu s odpovídajícími záznamy z jiné tabulky. Chcete-li to provést, vytvořte vnější spojení.
Vnitřní spojení zobrazují data pouze v případech, kdy v obou připojených zdrojích dat existuje odpovídající ID. Pokud například chcete zobrazit prodané produkty a množství, vytvoříte vnitřní spojení mezi tabulkami Products (Produkty) a Order Details (Podrobnosti objednávky). Při spuštění dotazu se vrátí pouze produkty, které se vyskytují v objednávkách, a proto se zobrazují v obou tabulkách.
Naproti tomu vnější spojení vrací všechna data z jednoho zdroje dat a některá data z jiné tabulky nebo zdroje dat.
Pokud například chcete zjistit, které produkty se neprodaly, vytvoříte dotaz, který zobrazí ID produktu z tabulky Produkty a odpovídající ID objednávek z tabulky Podrobnosti objednávky. Produkty, které nemají odpovídající záznamy v tabulce Podrobnosti objednávky, vrátí název produktu bez hodnoty pole ID objednávky.
Levá vnější spojení a pravá vnější spojení
Ve vnějším spojení se tabulka, která zobrazuje všechny své záznamy, nazývá základní tabulka. Tabulka, která zobrazuje pouze některé (odpovídající) záznamy, se nazývá sekundární tabulka.
Dialogové okno Vlastnosti spojení popisuje, co se zobrazuje u různých typů spojení:
Předpokládejme, že jste vytvořili dotaz, který ukazuje, které produkty si zákazníci koupili. Výstupní pole jsou Název produktu, ID objednávky a Množství.
-
Vnitřní spojení. Zahrňte pouze řádky (záznamy), ve kterých jsou spojená pole z obou tabulek stejná, například jenom produkty, ke kterým jsou přidruženy objednávky.
-
Levé vnější spojení. Zahrňte všechny záznamy z tabulky v části Název levé tabulky a jenom ty záznamy z tabulky v části Název tabulky vpravo, ve kterých jsou spojená pole rovna, například všechny objednávky, ale jenom množství a ID produktů pro objednávky, které mají přidružené produkty.
-
Pravé vnější spojení. Zahrňte všechny záznamy z tabulky v části Název tabulky vpravo a jenom ty záznamy z tabulky v části Název levé tabulky, ve které jsou spojená pole rovna, například všechny produkty, i když pro ně nejsou žádné objednávky. V tomto případě se v polích ID objednávky a Množství zobrazí prázdné hodnoty.
Jak poznáte z těchto příkladů, je důležité vědět, která tabulka je vlevo a která vpravo, což se může ve skutečnosti lišit od uspořádání tabulek v okně dotazu. Pokud chcete zjistit, jaká data z dotazu získáte, přečtěte si pečlivě text v dialogovém okně Vlastnosti spojení.
1. Přidání zdrojů dat
-
Vyberte Create > Návrh dotazu.
Přidejte všechny tabulky a dotazy, které potřebujete jako zdroje dat. (Nemějte obavy. Pokud na některý z nich zapomenete, budete moct později přidat další zdroje dat.)
Pokud je access zjistí nebo odvodit, může zobrazit relace pro zdroje dat.
2. Přidání spojení
-
Pokud mezi zdroji nevidíte relaci, přidejte spojení. Přetáhněte z požadovaného pole v jednom zdroji dat do odpovídajícího pole v jiném zdroji dat. Tabulka, ze které přetáhnete, je tabulka, která se zobrazí vlevo v dialogovém okně Vlastnosti spojení. Access ve výchozím nastavení vytvoří vnitřní spojení. Pokud potřebujete vnější spojení, změňte jeho typ.
3. Změna spojení
-
Poklikejte na čáru představující spojení, které chcete změnit.
-
Pokud chcete vytvořit vnější spojení, vyberte v dialogovém okně Vlastnosti spojení druhou nebo třetí možnost. Pak vyberte OK.
Nezapomeňte věnovat pozornost tomu, která tabulka je základní – ta, ze které se zobrazují všechny záznamy.
4. Dokončení dotazu
Při vytváření dotazu postupujte podle obvyklých kroků: přidejte výstupní pole, přidejte všechna kritéria a spusťte nebo uložte dotaz. Postup najdete v tématu Create základních dotazů.