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 do Accessového dotazu zahrniete viaceré zdroje údajov, pomocou spojenia môžete obmedziť záznamy, ktoré chcete zobraziť, a to na základe toho, ako sú zdroje údajov vzájomne prepojené. Môžete tiež použiť spojenie na kombinovanie záznamov z oboch zdrojov údajov tak, aby sa každý pár záznamov zo zdrojov stal jedným záznamom vo výsledkoch dotazu.

Tento článok sa zaoberá rôznymi typmi spojení a ukazuje, ako ich používať v dotaze. Na základe predvoleného nastavenia sa spojenie automaticky vytvorí, ak už existuje vzťah medzi dvomi zdrojmi údajov, ktoré používate v dotaze. Vytvorenie spojenia sa vytvorí aj V prípade, že sú polia, ktoré sú jednoznačne zhodné s ostatnými. Automaticky vytvorené spojenie môžete odstrániť. Tento článok poskytuje základné informácie o vzťahoch tabuliek vrátane toho, ako ho vytvoriť.

Poznámka: Môžete sa pripájať k dotazom rovnakým spôsobom, ako by ste sa pripojili k tabuľkám, a môžete sa tiež pridať k obom.

Obsah tohto článku

Prehľad

Typy spojení

Zobrazenie riadkov, v ktorých existuje bežná hodnota v oboch Spojených tabuľkách

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 Zapojte sa, ak existuje spoločná hodnota

Krížové spojenia

Spájanie tabuliek na základe nerovnosti hodnôt polí

Odstránenie spojenia

Prehľad

Databáza je kolekciou tabuliek údajov, ktoré sa navzájom označujú logickými vzťahmi. Pomocou vzťahov môžete prepojiť tabuľky s poľami, ktoré majú spoločné. Tabuľka môže byť súčasťou ľubovoľného počtu vzťahov, ale každý vzťah má vždy presne dve tabuľky. V dotaze je vzťah zastúpený spojením.

Keď pridáte tabuľky do dotazu, Access vytvorí spojenia založené na vzťahoch, ktoré boli definované medzi tabuľkami. Spojenia môžete manuálne vytvoriť v dotazoch, a to aj v prípade, že nepredstavujú už definované vzťahy. Ak používate iné dotazy (namiesto alebo okrem tabuliek) ako zdroje údajov pre dotaz, môžete vytvoriť spojenia medzi zdrojovými dotazmi a tiež medzi týmito dotazmi a tabuľkami, ktoré používate ako zdroje údajov.

Spojenia sa správajú podobne ako kritériá dotazu v tom, že vytvoria pravidlá, ktoré sa musia v rámci operácií dotazu zahrnúť do zhody. Na rozdiel od kritérií sa spojenie tiež špecifikuje, že každé dvojice riadkov spĺňajúcich podmienky spojenia sa zlúčia do množiny záznamov tak, aby sa vytvoria jeden riadok.

K dispozícii sú štyri základné typy spojení: vnútorné spojenia, vonkajšie spojenia, krížové spojenia a Nerovnaké spojenia. V tomto článku nájdete informácie o každom type spojenia, ktoré môžete použiť, dôvodoch používania jednotlivých typov a o tom, ako vytvoriť spojenia.

Spojenia majú dotaz na to, aké vzťahy sú k tabuľkám: údaj o tom, ako možno údaje z dvoch zdrojov skombinovať na základe hodnôt údajov, ktoré majú spoločné. Tu je príklad spojenia v návrhovom zobrazení dotazu s otvorenými vlastnosťami spojenia v dialógovom okne:

Okno Spojenie – vlastnosti.

Tento Link medzi tabuľkami predstavuje spojenie. Dvojitým kliknutím na spojenie Otvorte dialógové okno spojenie – vlastnosti (zobrazuje sa) a skontrolujte alebo zmeňte spojenie.

Spojenia sa niekedy dajú smerovať. V tejto oblasti dialógového okna sa zobrazuje, ktorá tabuľka sa v spojení nachádza a ktoré polia sa používajú na spojenie s tabuľkami.

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

Polia z oboch tabuliek možno použiť a údaje, ktoré sa vzťahujú na danú úlohu, sa zobrazia od každého. Do vnútorného spojenia nie sú zahrnuté žiadne ďalšie údaje. Vo vonkajšom spojení sa vo výsledkoch dotazu zahrnú aj nesúvisiace záznamy z jednej tabuľky.

Na začiatok stránky

Typy spojení

K dispozícii sú štyri základné typy spojení: vnútorné spojenia, vonkajšie spojenia, krížové spojenia a Nerovnaké spojenia. Krížové spojenia a nerovné spojenia sú rozšírené typy spojenia a používajú sa len zriedka, ale mali by ste vedieť o nich, aby ste mali úplnú predstavu o tom, ako sa spájajú s prácou.

Vnútorné spojenia: kombinované iba súvisiace údaje z oboch tabuliek

Vnútorné spojenie je jedno, v ktorom Access zahŕňa len údaje z tabuľky, ak sa v súvisiacej tabuľke nachádzajú zodpovedajúce údaje a naopak. Väčšinu času budete používať vnútorné spojenia. Keď vytvoríte spojenie a neurčíte, aký typ spojenia je, Access predpokladá, že chcete vytvoriť vnútorné spojenie. Vnútorné spojenia sú užitočné, pretože umožňujú kombinovať údaje z dvoch zdrojov na základe zdieľaných hodnôt – preto sa zobrazia len údaje, keď je k dispozícii celý obrázok.

Vonkajšie spojenia: všetky súvisiace údaje sú správne skombinované spolu so všetkými zvyšnými záznamami z jednej tabuľky

Vonkajšie spojenie je ako vnútorné spojenie, ale zvyšné riadky sa spočítajú z jednej z tabuliek. Vonkajšie spojenia sú smerové: ľavé vonkajšie spojenie obsahuje všetky záznamy z ľavej tabuľky – prvá tabuľka v spojení – a pravé vonkajšie spojenie obsahuje všetky záznamy z pravej tabuľky – druhej tabuľky v spojení.

Úplné vonkajšie spojenia: všetky údaje, ktoré sú v prípade uskutočniteľnosti kombinované

V niektorých systémoch môže vonkajšie spojenie zahŕňať všetky riadky z oboch tabuliek spolu s riadkami, ktoré sú v nich zhodné. Toto sa nazýva úplné vonkajšie spojenie a Access ich 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

Po väčšinu času je krížové spojenie vedľajším efektom pridania dvoch tabuliek do dotazu a potom sa k nim zabudol. Access interpretuje Toto znamená, že chcete zobraziť každý záznam z jednej tabuľky v kombinácii s každým záznamom z druhej tabuľky – každú možnú kombináciu záznamov. Keďže nie je možné kombinovať žiadne údaje, tento typ spojenia málokedy produkuje užitočné výsledky. Existuje však niekoľko prípadov, keď je krížové spojenie len to, čo potrebujete.

Nerovnaké spojenia: ako bežné spojenie, ale použitie iného porovnania na kombináciu riadkov

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

Zobrazenie riadkov, v ktorých existuje bežná hodnota v oboch Spojených tabuľkách

Ak chcete zobraziť iba tie riadky, ktoré majú zhodné hodnoty v pripojenom poli, použite vnútorné spojenie. Access vytvorí vnútorné spojenia automaticky.

Vnútorné spojenia sú najčastejším typom spojenia. Upozornia dotaz, ktorý riadky z jednej z pripojených tabuliek zodpovedajú riadkom v druhej tabuľke, na základe údajov v Spojených poliach. Po spustení dotazu s vnútorným spojením sa do operácií dotazu zahrnú iba tie riadky, v ktorých sa v oboch Spojených tabuľkách nachádza bežná hodnota.

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

Väčšinu času nemusíte robiť nič na použití vnútorného spojenia. Ak tabuľky, ktoré pridáte do dotazu, už obsahujú vzťahy, Access automaticky vytvorí vnútorné spojenie medzi jednotlivými dvojicami súvisiacich tabuliek, keď pridáte tabuľky. Ak je zabezpečená referenčná integrita, 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, že ste nevytvorili vzťahy, Access automaticky vytvorí vnútorné spojenia, ak do dotazu pridáte dve tabuľky a tieto tabuľky majú pole s rovnakým alebo kompatibilným typom údajov a jedným z polí spojenia je primárny kľúč. V tomto prípade sa v tomto prípade nezobrazujú symboly "One" a "many", pretože referenčná integrita sa nevynúti.

Ak do dotazu pridáte dotazy a nevytvorili ste vzťahy medzi týmito dotazmi, Access nevytvorí automaticky vnútorné spojenia medzi týmito dotazmi alebo medzi dotazmi a tabuľkami. Vo všeobecnosti by 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. Access zobrazí čiaru medzi týmito dvomi poliami, čo znamená, že spojenie sa vytvorilo.

Syntax SQL pre vnútorné spojenie

Vnútorné spojenia sú v klauzule FROM SQL uvedené v klauzule FROM, ako je znázornené 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.

compare

Ľ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 vnútorného spojenia.

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 upozornia dotaz, že hoci niektoré riadky na oboch stranách spojenia presne zodpovedajú, dotaz by mal zahŕňať všetky riadky z jednej tabuľky a tiež tie riadky z druhej tabuľky, ktoré zdieľajú spoločnú hodnotu na oboch stranách spojenia.

Vonkajšie spojenia sa môžu ponechávať na vonkajšie spojenia alebo sa môžu nachádzať pravé vonkajšie spojenia. V ľavom vonkajšom spojení dotaz obsahuje všetky riadky z prvej tabuľky v klauzule SQL Statement FROM a len tie riadky z inej tabuľky, kde sa spájacie pole obsahuje hodnoty spoločné pre obidve tabuľky. V rámci pravého vonkajšieho spojenia obsahuje dotaz všetky riadky z druhej tabuľky v klauzule SQL Statement FROM a len tie riadky z inej tabuľky, kde sa spájacie pole obsahuje hodnoty spoločné pre obidve tabuľky.

Poznámka: Ak chcete jednoducho zistiť, ktorá tabuľka je ľavou tabuľkou alebo pravou tabuľkou v danom pripojení, dvakrát kliknite na prepojenie a potom sa pozrite na dialógové okno spojenie – vlastnosti . Môžete tiež prejsť na zobrazenie SQL a potom overiť klauzulu FROM.

Keďže niektoré z riadkov na jednej strane vonkajšieho spojenia nebudú mať zodpovedajúce riadky z druhej tabuľky, niektoré polia vrátené vo výsledkoch dotazu z tejto inej tabuľky budú prázdne, keď riadky nezodpovedajú.

Ako sa používa vonkajšie spojenie?

Môžete vytvoriť vonkajšie spojenie ú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 spojenie, ktoré chcete zmeniť.

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

  2. V dialógovom okne spojenie – vlastnosti si všimnite možnosti uvedené vedľa možnosti 2 a možnosti 3.

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

  4. Access zobrazí spojenie a zobrazí šípku, ktorá smeruje zo zdroja údajov, v ktorom sa do zdroja údajov zahrnú všetky riadky, v ktorých sa zahrnú iba tie riadky, ktoré spĺňajú podmienky spojenia.

Nejednoznačné vonkajšie spojenia

Ak vytvoríte dotaz, ktorý obsahuje ľavé spojenie a vnútorné spojenie, Access nemusí byť schopný určiť, ktoré operácie spojenia sa majú vykonať ako prvé. Keďže výsledky sa líšia v závislosti od toho, či sa na prvý raz vykoná ľavé spojenie alebo vnútorné spojenie, v Accesse sa zobrazí chybové hlásenie:

Ak chcete chybu opraviť, musíte upraviť dotaz tak, aby bol jasný, ktorý sa má vykonať ako prvý.

Syntax SQL pre vonkajšie spojenie

Vonkajšie spojenia sú v klauzule FROM SQL uvedené v klauzule FROM, ako je znázornené nižšie:

OD Tabuľka1 [Left | Right] JOIN tabuľka2
na Tabuľka1. pole1 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.

compare

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

Ďalšie informácie o syntaxe vonkajšieho spojenia nájdete v téme ľavé spojenie, doprava cez operácie.

Na začiatok stránky

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

Ak chcete zobraziť všetky riadky z dvoch tabuliek a pridať sa k nim na základe bežných hodnôt, použite úplné vonkajšie spojenie. Access nepodporuje explicitné úplné vonkajšie spojenia, ale môžete dosiahnuť rovnaký efekt pomocou zjednocovacieho dotazu. Nasledujúci postup vysvetľuje, ako to urobiť, ak však chcete ďalšie informácie o zjednocovacích dotazoch, pozrite si časť Pozrite tiež .

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

  1. Vytvorte dotaz, ktorý obsahuje ľavé vonkajšie spojenie na pole, ktoré chcete použiť na ú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: Nepoužívajte všetky kľúčové slová pri použití zjednocovacieho dotazu na úplné vonkajšie spojenie.

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

  7. V kóde, ktorý ste vložili, zmeňte položku ľavé spojenie na pravé spojenie.

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

  9. Pridajte klauzulu WHERE, ktorá určuje, že hodnota poľa spojenie má hodnotu NULL v prvej tabuľke uvedenej 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]

    Pridajte nasledujúcu klauzulu WHERE:

    WHERE Products.ID IS NULL

  10. Zadajte bodkočiarku (;) na konci klauzuly WHERE označujúcej koniec zjednocovacieho dotazu.

  11. Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.

Krížové spojenia

Krížové spojenia sa odlišujú od vnútorných a vonkajších spojení v tom, že nie sú explicitne zastúpené v Access. V rámci krížového spojenia sa každý riadok z jednej tabuľky kombinuje s každým riadkom z inej tabuľky, čo znamená, že sa nazýva krížový produkt alebo produkt Karteziánsky. Vždy, keď spustíte dotaz, ktorý obsahuje tabuľky, ktoré nie sú explicitne pripojené, je výsledkom krížový produkt. Krížové spojenia sú zvyčajne neúmyselné, ale existujú prípady, v ktorých môžu byť užitočné.

Prečo sa používa Krížové spojenie?

Ak chcete preskúmať všetky možné kombinácie riadkov medzi dvomi tabuľkami alebo dotazmi, použite Krížové spojenie. Predpokladajme napríklad, že vaša firma má veľkolepý rok a zvažujete poskytnutie zliav svojim zákazníkom. Môžete vytvoriť dotaz, ktorý sčíta nákupy jednotlivých zákazníkov, vytvoriť malú tabuľku s viacerými možnými percentuálnymi hodnotami zliav a skombinovať dva v inom dotaze, ktorý vykoná Krížové spojenie. Skončíte s dotazom, ktorý zobrazuje množinu hypotetických rabatov pre každého zákazníka.

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

Krížové spojenie sa vytvára vždy, keď do dotazu zahrniete tabuľky alebo dotazy a nevytvoríte aspoň jedno explicitné spojenie pre každú tabuľku alebo dotaz. Access spojí každý riadok z každej tabuľky alebo dotazu, ktorý nie je explicitne spojený s akoukoľvek inou tabuľkou alebo dotazom na všetky ostatné riadky vo výsledkoch. Pouvažujte nad scenárom rabatu z predchádzajúceho odseku. Predpokladajme, že máte 91 zákazníkov a chcete si pozrieť päť možných percentuálnych hodnôt zliav. Krížové spojenie produkuje 455 riadkov (produkt 91 a 5).

Ako si dokážete predstaviť, neúmyselné krížové spojenia dokážu vytvoriť obrovské množstvo riadkov vo výsledkoch dotazu. Okrem toho sú tieto výsledky vo všeobecnosti nezmyselné, pretože ak nechcete, aby sa v každom druhom riadku kombinoval každý riadok, väčšina kombinovaných riadkov, ktoré sa zobrazujú vo výsledkoch, nedáva zmysel. Dotazy, ktoré používajú neúmyselné krížové spojenia, môžu nakoniec trvať veľmi dlho.

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

1. kruhové polia by mali byť navzájom prepojené.

Neúmyselný krížový produkt

1. Všimnite si veľmi veľký počet záznamov.

Výsledok správneho dotazu

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

Na začiatok stránky

Spájanie tabuliek na základe nerovnosti hodnôt polí

Spojenia nemusia byť založené na rovnocennosti Spojených polí . Spojenie môže byť založené na ľubovoľnom operátore porovnania, napríklad väčším ako (>), menším ako (<), alebo sa nerovná (<>). Spojenia, ktoré nie sú založené na ekvivalencii, sa nazývajú nerovné spojenia.

Ak chcete skombinovať riadky dvoch zdrojov údajov na základe hodnôt polí, ktoré nie sú rovnaké, použite nerovné spojenie. Nerovnaké spojenia sa zvyčajne zakladajú na tom, že sú väčšie ako (>), menšie ako (<), väčšie alebo rovné (> =) alebo menšie alebo rovné (< =) operátory porovnania. Nerovné spojenia, ktoré sú založené na operátore not EQUAL (<>), môžu vrátiť takmer toľko riadkov ako krížové spojenia a výsledky môžu byť ťažko interpretované.

Ako sa používa nerovné spojenie?

Nerovnaké spojenia nie sú v návrhovom zobrazení podporované. Ak ich chcete použiť, musíte tak urobiť pomocou zobrazenia SQL. Môžete však vytvoriť spojenie v návrhovom zobrazení, prejsť na zobrazenie SQL, vyhľadať operátor porovnania rovná sa (=) a zmeniť ho na operátora, ktorý chcete použiť. Po vykonaní tohto dotazu môžete dotaz otvoriť iba v návrhovom zobrazení, ak najprv zmeníte operátor porovnania na rovná sa (=) v zobrazení SQL.

Odstránenie spojenia

Ak program Access automaticky vytvorí spojenie, ktoré nechcete, alebo ak vytvoríte spojenie omylom, napríklad spojenie medzi dvoma poľami, ktoré majú rozdielne typy údajov, môžete spojenie odstrániť.

  1. V mriežke návrhu dotazu kliknite na spojenie, ktoré chcete odstrániť.

  2. Stlačte kláves Delete.

Iná možnosť:

  • 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

Kombinovanie výsledkov viacerých výberových dotazov pomocou 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.

×