Spojenie tabuliek a dotazov

Poznámka:  Radi by sme vám čo najrýchlejšie poskytovali najaktuálnejší obsah Pomocníka vo vašom vlastnom jazyku. Táto stránka bola preložená automaticky a môže obsahovať gramatické chyby alebo nepresnosti. Naším cieľom je, aby bol tento obsah pre vás užitočný. Dali by ste nám v dolnej časti tejto stránky vedieť, či boli pre vás tieto informácie užitočné? Tu nájdete anglický článok pre jednoduchú referenciu.

Ak zahrniete viacerých zdrojov údajov v dotaze Accessu, používate Obmedzte počet záznamov, ktoré chcete zobraziť, na základe ako zdroje údajov sú spojené navzájom spojení. Použiť spojenia na skombinovanie záznamov z oboch zdrojov údajov tak, aby jednotlivé páry záznamov zo zdrojov záznamov vo výsledkoch dotazu.

Tento článok popisuje rôzne typy spojení a vám ukáže, ako sa používajú v dotaze. Na základe predvoleného nastavenia spojenia sa automaticky vytvorí, ak už existuje vzťah medzi dve údaje zdrojov, ktoré používate v dotaze. Spojenia sa vytvorí aj ak existujú polia, ktoré jednoznačne zodpovedajú vzájomných interakcií. Automaticky vytvorené pripojenie môžete odstrániť. Tento článok poskytuje základné informácie o vzťahoch tabuliek, vrátane ako ho vytvoriť.

Poznámka: Rovnako ako spájania tabuliek a môžete pripojiť aj môžete spojiť dotazy.

Obsah tohto článku

Prehľad

Typy spojení

Zobrazenie riadkov v oboch Spojených tabuľkách existuje spoločná hodnota

Zobrazenie všetkých riadkov z jednej tabuľky a zodpovedajúcich riadkov z druhej tabuľky

Zobrazenie všetkých riadkov z oboch tabuliek a ich pripojenie, ak existuje spoločná hodnota

Krížové spojenia

Pripojenie k tabuľky na základe nerovnosti hodnôt polí

Odstránenie spojenia

Prehľad

Databázy je kolekcia tabuliek údajov, ktoré nesiete logické vzťahy k sebe. Na pripojenie tabuľky podľa polia, ktoré majú spoločné použiť vzťahy. Tabuľka môže byť súčasťou ľubovoľný počet vzťahov, ale každý vzťah má vždy presne dve tabuľky. V dotaze, je vyjadrená vzťahu spojenia.

Po pridaní tabuliek do dotazu, Access vytvorí spojenia, ktoré sú založené na vzťahy, ktoré boli definované medzi tabuľkami. Manuálne môžete vytvoriť spojenia v dotazoch, aj keď nie sú vzťahy, ktoré už boli definované. Ak chcete použiť iné dotazy (namiesto alebo spoločne tabuliek) ako zdroje údajov dotazu, môžete vytvoriť spojenia medzi zdrojmi dotazov, ako aj medzi danými dotazmi alebo všetky tabuľky, ktoré používate ako zdroj údajov.

Spojenia sa správajú podobne ako kritériá dotazu v tom, že ich stanoviť pravidlá, ktoré majú byť zahrnuté do operácií dotazu sa musí zhodovať údaje. Na rozdiel od kritérií, spojenia zadajte, či sa skombinujú jednotlivé páry riadky, ktoré spĺňajú podmienky spojenia v skupine záznamov, ktoré vytvárajú jeden riadok.

Existujú štyri základné typy spojení: vnútorné spojenia, vonkajšie spojenia, krížové spojenia a Nerovnaké spojenia. Tento článok popisuje každý typ spojenie, ktoré môžete použiť, prečo používať každý typ a ako vytvoriť spojenia.

Spojenia majú k dotazom rovnaký vzťah ako vzťahy k tabuľkám: označujú, ako možno skombinovať údaje v dvoch zdrojoch na základe spoločných hodnôt údajov. Tu je znázornenie spojenia v návrhovom zobrazení dotazu, pričom vlastnosti spojenia sú otvorené v dialógovom okne:

Okno Spojenie – vlastnosti.

Táto čiara medzi tabuľkami predstavuje spojenia. Dvakrát kliknite na položku pripojiť sa na otvorenie Vlastnosti spojenia dialógovým oknom (znázornené) a kontrola alebo zmena spojenia.

Spojenia sú niekedy smerovo závislé. Táto oblasť dialógového okna zobrazuje, ktoré sú jednotlivé tabuľky v spojení a ktoré polia slúžia na spojenie tabuliek.

Táto oblasť určuje typ spojenia: možnosť 1 predstavuje vnútorné spojenie, možnosť 2 ľavé vonkajšie spojenie a možnosť 3 pravé vonkajšie spojenie.

Možno použiť polia z oboch tabuliek, pričom sa z oboch zobrazia údaje, ktoré sa vzťahujú na danú úlohu. Pri vnútornom spojení nie sú zahrnuté žiadne ďalšie údaje. Pri vonkajškom spojení sú súčasťou výsledkov dotazu aj nesúvisiace záznamy z jednej tabuľky.

Na začiatok stránky

Typy spojení

Existujú štyri základné typy spojení: vnútorné spojenia, vonkajšie spojenia, krížové spojenia a nerovnaké spojenia. Krížové spojenia a nerovnaké spojenia predstavujú pokročilé typy spojení a používajú sa zriedkavo, mali by ste sa však s nimi oboznámiť, aby ste úplne porozumeli funkcii spojení.

Vnútorné spojenia: kombinujú sa len súvisiace údaje z oboch tabuliek

Vo vnútornom spojení program Access zahŕňa údaje z tabuľky, len ak existujú zodpovedajúce údaje aj v súvisiacej tabuľke, a naopak. Väčšinou budete používať práve vnútorné spojenia. Keď vytvoríte spojenie a neuvediete jeho typ, program Access predpokladá, že chcete vytvoriť vnútorné spojenie. Vnútorné spojenia sú užitočné, pretože umožňujú skombinovať údaje z dvoch zdrojov na základe spoločných hodnôt – takže údaje uvidíte len vtedy, ak existuje úplný obraz.

Vonkajšie spojenia: správne skombinované všetky súvisiace údaje plus všetky zvyšné záznamy z jednej tabuľky

Vonkajšie spojenie je podobné ako vnútorné spojenie, pridáva však zvyšné riadky z jednej z tabuliek. Vonkajšie spojenia sú smerovo závislé: ľavé vonkajšie spojenie zahŕňa všetky záznamy z ľavej tabuľky – prvej tabuľky v spojení – a pravé vonkajšie spojenie zahŕňa všetky záznamy z pravej tabuľky – druhej tabuľky v spojení.

Úplné vonkajšie spojenia: všetky údaje skombinované v prípustných prípadoch

V niektorých systémoch môže vonkajšie spojenie zahŕňať všetky riadky z oboch tabuliek, pričom zhodné riadky sa skombinujú. Táto funkcia sa označuje ako úplné vonkajšie spojenie a program Access ju explicitne nepodporuje. Na dosiahnutie rovnakého efektu však môžete použiť krížové spojenie a kritériá.

Krížové spojenia: všetky údaje skombinované všetkými možnými spôsobmi

Vo väčšine prípadov je krížové spojenie vedľajším efektom toho, keď do dotazu pridáte dve tabuľky a potom ich zabudnete spojiť. Program Access to interpretuje tak, že chcete vidieť každý záznam z jednej tabuľky skombinovaný s každým záznamom z druhej tabuľky – všetky možné kombinácie záznamov. Pretože nie je možné skombinovať žiadne údaje, tento druh spojenia zriedkakedy poskytuje užitočné výsledky. Existuje však niekoľko prípadov, keď je krížové spojenie práve to, čo potrebujete.

Nerovnaké spojenia: rovnaké ako bežné spojenia, na skombinovanie riadkov sa však používa odlišné porovnanie

Nerovnaké spojenia používajú na porovnanie hodnôt a určenie, či a ako sa majú údaje skombinovať, iný operátor ako znamienko rovnosti (=). Nerovnaké spojenia nie sú explicitne podporované, na dosiahnutie rovnakého efektu však môžete použiť krížové spojenie a kritériá.

Zobrazenie riadkov v oboch Spojených tabuľkách existuje spoločná hodnota

Ak chcete zobraziť len tie riadky, ktoré majú zhodné hodnoty v pripojenom poli, môžete použiť vnútorné spojenie. Program Access vytvorí vnútorné spojenia automaticky.

Vnútorné spojenia sú najbežnejšie typ spojenia. Informujú dotaz danej riadky z prvej zo Spojených tabuliek zodpovedajú riadkom v druhej tabuľke, na základe údajov v Spojených polí. Pri spustení dotazu s vnútorné spojenie iba tie riadky, ktoré sú v oboch Spojených tabuľkách existuje spoločná hodnota budú zahrnuté do operácií dotazu.

Ako sa vnútorné spojenie používa?

Ak chcete použiť vnútorné spojenie, väčšinou nie je potrebné urobiť nič. Ak už existujú vzťahy medzi tabuľkami, ktoré chcete pridať k dotazu, program Access automaticky vytvorí vnútorné spojenie medzi každým párom súvisiacich tabuliek pri pridaní týchto tabuliek. Ak je zabezpečená referenčná integrita, program Access zobrazí nad prepájacou čiarou číslicu 1, ktorá označuje tabuľku na strane „one“ vzťah „one-to-many“, alebo zobrazí symbol nekonečna (), ktorý označuje tabuľku na strane „many“.

Aj v prípade, ak ste nevytvorili vzťahy, Access automaticky vytvorí vnútorné spojenia, ak do dotazu pridáte dve tabuľky a tieto tabuľky obsahujú pole s rovnakým alebo kompatibilný dátový typ a pripojiť sa k polí je primárny kľúč. Symboly "one" a "many" nie sú zobrazené v tomto prípade preto nie je vynútená referenčnú integritu.

Ak do dotazu pridáte dotazy a vytvorili vzťahy medzi danými dotazmi, program Access automaticky nevytvorí vnútorné spojenia medzi danými dotazmi alebo medzi dotazmi a tabuľkami. Vo všeobecnosti platí, ste ich mali vytvoriť sami. Vnútorné spojenie vytvoríte presunutím poľa z jedného zdroja údajov do poľa v inom zdroji údajov. Program Access zobrazí čiaru medzi dvoma poľami na zobrazenie, že spojenia bol vytvorený.

Syntax SQL pre vnútorné spojenie

Vnútorné spojenia sa v jazyku SQL zadávajú v klauzule FROM, ako je to uvedené nižšie:

FROM Tabuľka1 INNER JOIN tabuľka2 ON Tabuľka1. pole1 porovnanie tabuľka2. pole2

Operácia INNER JOIN má tieto časti:

Časť

Popis

tabuľka1 , tabuľka2

Názvy tabuliek, ktorých záznamy sa spájajú.

pole1 , pole2

Názvy spojených polí. Ak nie sú číselné, musia mať rovnaký typ údajova obsahovať rovnaký druh údajov, ale nemusia mať rovnaký názov.

porovnanie

Ľubovoľný operátor relácie porovnávania: „=“, „<“, „>“, „<=“, „>=“ alebo „<>“.

Ďalšie informácie o syntaxe vnútorného spojenia nájdete v téme operácia INNER JOIN.

Na začiatok stránky

Zobrazenie všetkých riadkov z jednej tabuľky a zodpovedajúcich riadkov z druhej tabuľky

Vonkajšie spojenia povedzte dotazu, ktorý aj napriek tomu, že niektoré riadky na oboch stranách spojenia sú rovnaké, dotaz by mal obsahovať všetky riadky z jednej tabuľky, ako aj tie riadky z inej tabuľky, ktoré zdieľajú spoločnú hodnotu na oboch stranách spojenia.

Vonkajšie spojenia delíme na ľavé vonkajšie spojenie a na pravé vonkajšie spojenie. Pri ľavom vonkajšom spojení obsahuje dotaz všetky riadky z prvej tabuľky v klauzule FROM príkazu SQL a len tie riadky z inej tabuľky, ktorých spojené pole obsahuje hodnoty spoločné pre obe tabuľky. Pri pravom vonkajšom spojení obsahuje dotaz všetky riadky z druhej tabuľky v klauzule FROM príkazu SQL a len tie riadky z inej tabuľky, ktorých spojené pole obsahuje hodnoty spoločné pre obe tabuľky.

Poznámka: Ľahko zistíte, ktorá tabuľka je ľavá tabuľka alebo pravá tabuľka v danom spojenie dvakrát kliknite na požadované spojenie a potom hľadať v dialógovom okne Vlastnosti spojenia. Môžete tiež prepnúť na zobrazenie SQL a potom preskúmať Klauzula FROM.

Keďže niektoré riadky z jednej strany vonkajšieho spojenia nemajú zodpovedajúce riadky v inej tabuľke, niektoré polia vrátené vo výsledkoch dotazu z danej tabuľky budú prázdne, ak im riadky nezodpovedajú.

Ako sa vonkajšie spojenie používa?

Vonkajšie spojenie vytvoríte úpravou existujúceho vnútorného spojenia. Ak neexistuje žiadne vnútorné spojenie, vytvorte ho a potom ho zmeňte na vonkajšie spojenie.

Zmena vnútorného spojenia na vonkajšie spojenie

  1. V návrhovom zobrazení dotazu dvakrát kliknite na požadované spojenie.

    Zobrazí sa dialógové okno Spojenie – vlastnosti.

  2. V dialógovom okne Spojenie – vlastnosti Všimnite možnosti zobrazené vedľa možnosti 2 a možnosti 3.

  3. Kliknite na požadovanú možnosť a potom kliknite na tlačidlo OK.

  4. Program Access zobrazí spojenie, ako aj šípku smerujúcu od zdroja údajov, ktorý má obsahovať všetky riadky, k zdroju údajov, ktorý má obsahovať len tie riadky, ktoré spĺňajú podmienky spojenia.

Nejednoznačné vonkajšie spojenia

Ak vytvoríte dotaz, ktorý obsahuje doľava spojenia a vnútorné spojenie, Access nemusí určiť, ktoré operácia má vykonať ako prvé. Keďže výsledky sa líšia v závislosti od toho, či spojenie zľava alebo vnútorné spojenie sa vykonáva najprv, program Access zobrazí chybové hlásenie:

Ak chcete odstrániť túto chybu, musíte upraviť dotaz tak, aby bolo jasné, ktoré spojenie sa má vykonať ako prvé.

Syntax SQL pre vonkajšie spojenie

Vonkajšie spojenia sú v SQL určené v klauzule FROM, ako je zobrazené nižšie:

FROM Tabuľka1 [doľava | PRAVÝ] spojenie tabuľka2
na table1.field1 porovnanie tabuľka2.pole2

Operácie LEFT JOIN a RIGHT JOIN majú tieto časti:

Časť

Popis

tabuľka1 , tabuľka2

Názvy tabuliek, ktorých záznamy sa spájajú.

pole1 , pole2

Názvy polí, ktoré sa spájajú. Polia musia obsahovať rovnaký typ údajov, ako aj druh údajov, ale nemusia mať rovnaký názov.

porovnanie

Ľubovoľný operátor relácie porovnávania: „=“, „<“, „>“, „<=“, „>=“ alebo „<>“.

Ďalšie informácie o syntaxe vonkajšieho spojenia nájdete v téme doľava JOIN, RIGHT JOIN operácie.

Na začiatok stránky

Zobrazenie všetkých riadkov z oboch tabuliek a ich pripojenie, ak existuje spoločná hodnota

Ak chcete zobraziť všetky riadky z dvoch tabuliek a pripojiť sa k nim na základe bežných hodnôt, používate úplné vonkajšie spojenie. Program Access explicitne nepodporuje úplného vonkajšieho spojenia, ale môžete dosiahnuť rovnakého efektu s použitím zjednocovacieho dotazu. Nasledujúci postup vysvetľuje, ako to urobiť, ale ak chcete ďalšie informácie o zjednocovacích dotazoch nájdete v časti Pozrite tiež.

Použitie zjednocovacieho dotazu na vykonanie úplného vonkajšieho spojenia:

  1. Vytvorte dotaz, ktorý má ľavé vonkajšie spojenie pre pole, ktoré chcete použiť pre úplné vonkajšie spojenie.

  2. Na karte Domov kliknite v skupine Zobrazenia na položku Zobrazenie a potom kliknite na položku Zobrazenie SQL.

  3. Stlačením kombinácie klávesov CTRL + C skopírujte kód SQL.

  4. Odstráňte bodkočiarku na konci klauzuly FROM a stlačte kláves ENTER.

  5. Zadajte výraz UNION a potom stlačte kláves ENTER.

    Poznámka: Keď používate zjednocovací dotaz na vykonanie úplného vonkajšieho spojenia, nepožívajte kľúčové slovo ALL.

  6. Stlačením kombinácie klávesov CTRL + V prilepte kód SQL skopírovaný v kroku 3.

  7. V prilepenom kóde zmeňte LEFT JOIN na RIGHT JOIN.

  8. Odstráňte bodkočiarku na konci druhej klauzuly FROM a stlačte kláves ENTER.

  9. Pridajte klauzulu WHERE, ktorá určuje, že hodnota poľa spojenia je NULL v prvej tabuľke uvádzanej v klauzule FROM (ľavá tabuľka).

    Ak je napríklad klauzula FROM:

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

    Ak chcete, pridajte nasledujúcu klauzulu WHERE:

    WHERE Products.ID IS NULL

  10. Zadaním bodkočiarky (;) na konci klauzuly WHERE označte koniec zjednocovacieho dotazu.

  11. Na karte Návrh kliknite v skupine Výsledky na položku Spustiť.

Krížové spojenia

Krížové spojenia sa líšia od vnútorné a vonkajšie spojenia v, ak nie sú explicitne reprezentované v Access. Krížové spojenie, každý riadok z jednej tabuľky je v kombinácii s každým riadkom z inej tabuľky, výsledkom je to, čo sa nazýva krížový produkt alebo karteziánsky súčin. Každom spustení dotazu, ktorý obsahuje tabuľky, ktoré nie sú explicitne spojené, výsledkom je krížový produkt. Krížové spojenia sú zvyčajne neúmyselné, ale existujú prípady, pričom môže byť užitočné.

Dôvody používania krížového spojenia

Ak chcete preskúmať všetky možné kombinácie riadkov medzi dve tabuľky alebo dotazy, používania krížového spojenia. Predpokladajme, že váš podnik za sebou veľkolepý rok a ste sa rozhodli, že zľavy svojim zákazníkom. Môžete vytvoriť dotaz, ktorý sčíta nákupy jednotlivých zákazníkov, vytvorí malú tabuľku, ktorý má niekoľko možných zľavy percentuálnych hodnôt a spojí ich do iného dotazu, ktorý vykoná Krížové spojenie. Skončíte s dotaz, ktorý zobrazuje množinu hypotetická zľavy pre každého zákazníka.

Ako sa krížové spojenie používa?

Krížové spojenie sa vytvorí, keď ste zahrnúť tabuliek alebo dotazov do dotazu a vytvoriť aspoň jedno explicitné spojenie pre každú tabuľku alebo dotaz. Program Access spojí každý riadok z každej tabuľky alebo dotazu, ktorý nie je explicitne spojený s inými tabuľky alebo dotazu na každý druhý riadok v zozname výsledkov. Predstavte si situáciu zľavu z predchádzajúceho odseku. Predpokladá, že máte 91 zákazníkov a chcete sa pozrieť na päť možných zľavy percentuálnych hodnôt. Svoje Krížové spojenie produkuje 455 riadkov (produkt 91 a 5).

Ako predpokladáte, neúmyselné krížové spojenia môžete vytvoriť veľké množstvo riadkov vo výsledkoch dotazu. Okrem toho, tieto výsledky sú vo všeobecnosti zmysel, pretože ak naozaj nemáte v úmysle spojiť každý riadok s každý druhý riadok, väčšina Spojených riadkov, ktoré sa zobrazujú vo výsledkoch nebude mať zmysel. Nakoniec dotazov používajúcich neúmyselné krížové spojenia môže trvať veľmi dlho, ak chcete spustiť.

Neúmyselné krížové spojenie v dotaze v návrhovom zobrazení
Neúmyselné Krížové spojenie v návrhovom zobrazení dotazu.

1. Zakrúžkované polia je možné pripojiť k sebe.

Neúmyselný krížový produkt
Krížový produkt vrátený neúmyselné Krížové spojenie je znázornené vyššie.

1. Poznámka veľký počet záznamov.

Výsledok správneho dotazu
Výsledky po vytvorení správneho spojenia.

1. Všimnite si, že počet záznamov je oveľa menšia.

Na začiatok stránky

Pripojenie k tabuľky na základe nerovnosti hodnôt polí

Spojenia sa nemusia zakladať na zhode spojených polí. Spojenie môže byť založené na ľubovoľnom operátore porovnávania, ako je napríklad operátor väčšie než (>), menšie než (<) alebo nerovná sa (<>). Spojenia nezaložené na zhode sa nazývajú nerovnaké spojenia.

Ak chcete spojiť riadky z dvoch zdrojov údajov na základe hodnôt polí, ktoré nie sú zhodné, použijete nerovnaké spojenie. Nerovnaké spojenia sú zvyčajne založené na operátoroch porovnávania, ako je napríklad operátor väčšie než (>), menšie než (<), väčšie alebo rovné (>=) alebo menšie alebo rovné (<=). Nerovnaké spojenia založené na operátore nerovná sa (<>) môžu vrátiť takmer rovnaký počet riadkov ako pri krížových spojeniach, pričom výsledky môžu byť ťažko interpretovateľné.

Ako sa nerovnaké spojenie používa?

Nerovnaké spojenia nie sú podporované v návrhovom zobrazení. Ak chcete používať, musíte tak urobiť pomocou zobrazenie SQL. Však môžete vytvoriť spojenia v návrhovom zobrazení, prepnite na zobrazenie SQL, nájdite rovná sa (=) operátor porovnávania a zmeňte ho na požadovaný operátor, ktorý chcete použiť. Po vykonaní tohto kroku môžete len dotaz v návrhovom zobrazení znova otvoriť Ak prvá zmena operátor porovnávania späť na rovná sa (=) v zobrazení SQL.

Odstránenie spojenia

Ak program Access automaticky vytvorí spojenie, ktoré nechcete, alebo ak ste spojenie vytvorili omylom – napríklad spojenie medzi dvoma poľami s nezhodnými typmi údajov – takéto spojenie môžete odstrániť.

  1. V mriežke návrhu dotazu kliknite na požadované spojenie.

  2. Stlačte tlačidlo odstrániť.

- alebo -

  • V mriežke návrhu dotazu kliknite pravým tlačidlom myši na spojenie, ktoré chcete odstrániť, a potom kliknite na položku odstrániť.

Na začiatok stránky

Pozrite tiež

Pridanie záznamov do tabuľky pomocou pripájacieho dotazu

Kombinovať výsledkov viacerých vyberte dotazov použitím zjednocovacieho dotazu

Vytvorenie dotazu na základe viacerých tabuliek

Vytvorenie, úprava alebo odstránenie vzťahu

Rozšírte svoje zručnosti práce s balíkom Office
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×