Použitie zjednocovacieho dotazu na získanie jedného výsledku z kombinácie viacerých dotazov

Použitie zjednocovacieho dotazu na získanie jedného výsledku z kombinácie viacerých dotazov

Dôležité : Tento článok je strojovo preložený, prečítajte si vyhlásenie. Anglickú verziu tohto článku nájdete tu a môžete ju použiť ako referenciu.

Predpokladajme, že databázy programu Access má dve nesúvisiace tabuľky – jeden, ktorej sú uložené údaje o zákazníkoch a ďalšie, ktorej sú uložené údaje o dodávateľov – a oboch tabuliek obsahujú pole kontaktné informácie. By ste chceli vidieť kontaktné informácie z oboch tabuliek v jednom zobrazení. Na vykonanie tejto operácie sa najskôr vytvorte výberový dotaz pre každú tabuľku získať kontaktné informácie a potom spojiť tieto výsledky vytváraní zjednocovacieho dotazu.

Poznámka : Obsah v tomto článku sú určené na použitie s počítačovej databázy programu Access. Nie je možné vytvoriť alebo použite zjednocovací dotaz v prístup webových databázach ani vo webových aplikáciách Accessu.

Potrebujete si pripomenúť vytvárajú základné výberové dotazy? Pozrite si tému Vytvorenie jednoduchého výberového dotazu.

Pri vytváraní zjednocovacieho dotazu treba vedieť niekoľko vecí:

  • Výberové dotazy, ktoré kombinujete do zjednocovacieho dotazu, musia mať rovnaký počet výstupných polí v rovnakom poradí a s rovnakými alebo kompatibilnými typmi údajov. Keď spustíte zjednocovací dotaz, údaje z každej skupiny zodpovedajúcich polí sa skombinujú do jedného výstupného poľa, aby mal výstup dotazu rovnaký počet polí ako každý z výrazov SELECT.

  • Zjednocovací dotaz je špecifický pre jazyk SQL a musí byť preto napísaný priamo v jazyku SQL. Na zápis dotazov špecifických pre jazyk SQL vrátane zjednocovacích dotazov je potrebné prepnúť na možnosť Zobrazenie SQL.

Krok 1: Vytvorenie výberových dotazov

Poznámka : Do dotazu síce môžete zahrnúť viaceré tabuľky alebo dotazy, pri tomto postupe sa však vychádza z toho, že každý z vašich výberových dotazov zahŕňa údaje iba z jednej tabuľky.

  1. Na karte Vytvoriť kliknite v skupine Dotazy na položku Návrh dotazu.

  2. V dialógovom okne Zobrazenie tabuľky dvakrát kliknite na tabuľku obsahujúcu polia, ktoré chcete zahrnúť. Tabuľka sa pridá do okno návrhu dotazu.

  3. Zatvorte dialógové okno Zobrazenie tabuľky.

  4. V okne návrhu dotazu dvakrát kliknite na každé z polí, ktoré chcete zahrnúť.
    Pri výbere polí pridajte rovnaký počet polí a v rovnakom poradí, ako pridávate do ostatných výberových dotazov. Venujte pozornosť typom údajov polí a skontrolujte, či obsahujú kompatibilné typy údajov s poľami v rovnakej pozícii v ostatných dotazoch, ktoré kombinujete. Ak má napríklad prvý výberový dotaz päť polí, z ktorých prvé obsahuje údaje typu dátum a čas, skontrolujte, či každý z ostatných výberových dotazov, ktoré kombinujete, má takisto päť polí, z ktorých prvé obsahuje údaje typu dátum a čas, a tak ďalej.

  5. Do polí podľa potreby pridajte kritériá zadaním príslušných výrazov do riadka kritériá mriežky poľa.

  6. Po dokončení pridávania polí a kritérií polí by mali spustiť výberový dotaz a skontrolovať jeho výstup. Na karte návrh v skupine výsledky kliknite na položku Spustiť.

  7. Prepnite dotaz do návrhového zobrazenia.

  8. Uložte výberový dotaz a ponechajte ho otvorený.

  9. Zopakujte tento postup pri každom výberovom dotaze, ktorý chcete skombinovať.

Ďalšie informácie o používaní kritérií v dotaze nájdete v téme použitie kritérií v dotaze.

Krok 2: Skombinovanie výberových dotazov

V tomto kroku vytvoríte pomocou SQL zjednocovacieho dotazu. (Ďalšie informácie nájdete v časti SQL syntax , pod.)

  1. Na karte Vytvoriť kliknite v skupine Dotazy na položku Návrh dotazu.

  2. Zatvorte dialógové okno Zobrazenie tabuľky.

  3. Na karte Návrh kliknite v skupine Dotaz na položku Zjednocovací.

Okno návrhu dotazu v Accesse je skryté a zobrazuje sa karta objektu zobrazenia SQL. V tomto bode je karta objektu zobrazenia SQL prázdna.

  1. Kliknite na kartu pre prvý výberový dotaz, ktorý chcete skombinovať v zjednocovacom dotaze.

  2. Na karte domov kliknite na položky Zobraziť > Zobrazenie SQL.

  3. Skopírujte príkaz SQL pre výberový dotaz. Kliknite na kartu pre zjednocovací dotaz, ktorý ste začali vytvárať v kroku 1.

  4. Prilepte príkaz SQL pre výberový dotaz do karty objektu v zobrazení SQL zjednocovacieho dotazu.

  5. Odstráňte bodkočiarku (;) na konci príkazu SQL výberového dotazu.

  6. Stlačením klávesu Enter presunúť kurzor o jeden riadok nadol a zadajte kľúčové slovo UNION do nového riadka.

  7. Kliknite na kartu pre ďalší výberový dotaz, ktorý chcete skombinovať v zjednocovacom dotaze.

  8. Opakujte kroky 5 až 10, kým neskopírujete a neprilepíte všetky príkazy SQL pre výberové dotazy do okna zobrazenia SQL zjednocovacieho dotazu. Neodstraňujte bodkočiarku ani nezadávajte nič za príkaz SQL pre posledný výberový dotaz.

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

Výsledky zjednocovacieho dotazu sa zobrazia v údajové zobrazenie.

Na začiatok stránky

Tipy na používanie zjednocovacích dotazov

  • Ak chcete mať možnosť rozlíšiť, ktoré riadky pochádzajú z ktorej tabuľky, pridajte textový reťazec ako pole do každého z príkazov Select.

    Ak napríklad jeden príkaz Select načítava polia z tabuľky s názvom Products a iný príkaz Select z tabuľky s názvom Service, pridajte reťazec „Product“ ako pole na konci prvého príkazu a reťazec „Service“ na konci druhého príkazu. Môžete tiež reťazcom priradiť alias poľa (napríklad „type“) použitím kľúčového slova AS, ako je uvedené v nasledujúcom príklade:

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    Výstup dotazu by zahŕňal pole s názvom "type" zobrazujúce, či riadok pochádza z tabuľky Products alebo z tabuľky Service.

  • Každé kľúčové slovo UNION kombinuje príkazy SELECT, ktoré sú uvedené bezprostredne pred ním, s príkazmi bezprostredne za ním. Ak použijete v dotaze kľúčové slovo ALL s niektorými kľúčovými slovami UNION, ale nie s inými, výsledky budú obsahovať duplicitné riadky z párov príkazov SELECT skombinovaných pomocou kľúčových slov UNION ALL, nebudú však obsahovať duplicitné riadky z príkazov SELECT skombinovaných pomocou kľúčového slova UNION bez kľúčového slova ALL.

  • Počet, typ údajov a poradie polí vo výberových dotazoch sa musí zhodovať. Na zabezpečenie vzájomnej zhody môžete použiť výrazy, napríklad výpočty a poddotazy.

    Zhodu poľa s dvojmiestnym rokom s poľom štvormiestneho roka môžete napríklad zabezpečiť extrahovaním posledných dvoch číslic zo štvormiestneho roka pomocou funkcie Right.

Použitie výsledkov zjednocovacieho dotazu na vytvorenie novej tabuľky

Najskôr použite zjednocovací dotaz ako vstup pre nový výberový dotaz a potom tento výberový dotaz použite ako základ vytvárajúci dotaz, ako je to znázornené v nasledujúcich krokov:

  1. Vytvorte a uložte zjednocovací dotaz.

  2. Na karte Vytvoriť kliknite v skupine Dotazy na položku Návrh dotazu.

  3. V dialógovom okne Zobrazenie tabuľky kliknite na kartu Dotazy.

  4. Dvakrát kliknite na zjednocovací dotaz a potom zatvorte dialógové okno Zobrazenie tabuľky.

    Poznámka : Ak sa na paneli hlásení zobrazí upozornenie zabezpečenia, akčné dotazy môžu byť zakázané. Ak chcete povoliť akčné dotazy, kliknite na paneli hlásení na položku Povoliť obsah.

  5. V mriežke návrhu dotazu na karte objektu zjednocovacieho dotazu dvakrát kliknite na hviezdičku (*), aby sa všetky polia zjednocovacieho dotazu použili na vytvorenie novej tabuľky.

  6. Na karte Návrh kliknite v skupine Typ dotazu na položku Vytvárajúci.

  7. V dialógovom okne Vytvorenie tabuľky zadajte názov pre novú tabuľku .

  8. Voliteľne môžete zadať inú databázu, v ktorej chcete vytvoriť tabuľku.

  9. Kliknite na tlačidlo OK.

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

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

Zjednocovací dotaz môžete použiť na vykonanie úplného vonkajšie spojenie. Úplné vonkajšie spojenie neobmedzuje riadky načítané z oboch spojených tabuliek, ale kombinuje riadky na základe hodnôt v poli 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 klauzulu UNIONa 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]

    Mali by ste pridať 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ť.
    Zobrazia sa výsledky zjednocovacieho dotazu v údajové zobrazenie.

Ďalšie informácie nájdete v téme spájanie zdrojov údajov v dotaze.

Na začiatok stránky

Požiadavky a syntax SQL pre zjednocovací dotaz

Niektoré požiadavky na zjednocovací dotaz

  • Výberové dotazy, ktoré kombinujete do zjednocovacieho dotazu, musia mať rovnaký počet výstupných polí v rovnakom poradí a s rovnakými alebo kompatibilnými typmi údajov. Keď spustíte zjednocovací dotaz, údaje z každej skupiny zodpovedajúcich polí sa skombinujú do jedného výstupného poľa, aby mal výstup dotazu rovnaký počet polí ako každý z výrazov SELECT.

    Poznámka : Na účely zjednocovacieho dotazu sú typy údajov Number a Text kompatibilné.

  • Zjednocovací dotaz je špecifický pre jazyk SQL a musí byť preto napísaný priamo v jazyku SQL. Na zápis dotazov špecifických pre jazyk SQL vrátane zjednocovacích dotazov je potrebné prepnúť na možnosť Zobrazenie SQL.

Syntax SQL zjednocovacieho dotazu

Každý výberový dotaz (nazývaný aj príkaz SELECT) v zjednocovacom dotaze má nasledujúce klauzuly:

Klauzula

Obsahuje zoznam...

SELECT

polí obsahujúcich údaje, ktoré chcete načítať.

FROM

tabuliek obsahujúcich tieto polia.

Voliteľná WHERE

kritérií pre tieto polia.

Príkazy SELECT sa skombinujú pomocou kľúčového slova UNION.

Základná syntax SQL pre zjednocovací dotaz je nasledovná:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Predpokladajme napríklad, že máte databázu obsahujúcu tabuľku s názvom Products a ďalšiu tabuľku s názvom Services. V oboch tabuľkách sa nachádzajú polia s názvom produktu alebo služby, cenou, dostupnosťou záruky alebo ručenia a informáciou o tom, či ponúkate produkt alebo službu výhradne. Hoci tabuľka Products obsahuje informácie o záruke a tabuľka Services informácie o ručení, základné informácie sú rovnaké (čiže to, či sa určitý produkt alebo služba poskytuje s prísľubom kvality). Na skombinovanie štyroch polí z dvoch tabuliek môžete použiť zjednocovací dotaz, napríklad nasledovný:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Preskúmajme uvedený príklad syntaxe riadok po riadku:

Syntax

Vysvetlenie

Ďalšie informácie

SELECT name, price, warranty_available, exclusive_offer

Prvá klauzula SELECT

Za klauzulou SELECT nasleduje zoznam identifikátorov označujúcich polia, z ktorých chcete načítať údaje.

Klauzula SELECT musí uvádzať aspoň jedno pole.

Táto klauzula SELECT uvádza identifikátory polí name, price, warranty_available a exclusive_offer.

FROM Products

Prvá klauzula FROM

Klauzula FROM nasleduje za klauzulou SELECT a spolu vytvárajú základný príkaz SELECT.

Za klauzulou FROM nasleduje zoznam identifikátorov označujúcich tabuľky, ktoré obsahujú polia uvedené v klauzule SELECT.

Klauzula FROM musí uvádzať aspoň jednu tabuľku.

Táto klauzula FROM uvádza identifikátor tabuľky Products.

UNION ALL

Kľúčové slovo UNION a voliteľné kľúčové slovo ALL

Výsledky príkazu SELECT uvedeného pred kľúčovým slovom UNION sa skombinujú s výsledkami príkazu SELECT nasledujúceho za kľúčovým slovom UNION.

Keď použijete kľúčové slovo ALL, duplicitné riadky sa neodstránia z výsledkov zjednocovacieho dotazu.

Pri použití kľúčového slova ALL sa urýchli priebeh dotazu, pretože program Access nemusí kontrolovať duplicitné riadky.

Kľúčové slovo ALL použite, ak je splnená niektorá z nasledujúcich podmienok:

  • Máte istotu, že výberové dotazy nevygenerujú žiadne duplicitné riadky.

  • Nezáleží na tom, či budú výsledky obsahovať duplicitné riadky.

  • Duplicitné riadky chcete mať zobrazené.

SELECT name, price, guarantee_available, exclusive_offer

Druhá klauzula SELECT

Niektoré pravidlá:

  • Druhá klauzula SELECT musí mať rovnaký počet polí ako prvá klauzula SELECT.

  • Polia zdieľajúce spoločné údaje sa musia zobrazovať v klauzule v rovnakom poradí.

  • Polia zdieľajúce spoločné údaje musia mať rovnaký alebo kompatibilný typ údajov.

Poznámka : Názvy polí vo výstupe zjednocovacieho dotazu sú z prvej klauzuly SELECT. V príklade sú teda údaje z poľa warranty_available a z poľa guarantee_available vo výstupe dotazu pomenované ako warranty_available.

FROM Services

Druhá klauzula FROM

V klauzulách FROM zjednocovacieho dotazu neexistujú žiadne obmedzenia tabuliek. Môžete vytvoriť zjednocovací dotaz používajúci rovnaké tabuľky v každej klauzule FROM. V klauzulách FROM môžu byť rôzne počty tabuliek. V našom príklade majú klauzuly FROM iba po jednej tabuľke.

Na začiatok stránky

Poznámka : Vyhlásenie týkajúce sa strojového prekladu: Tento článok bol preložený počítačovým systémom bez zásahu človeka. Poskytovaním týchto strojových prekladov umožňuje spoločnosť Microsoft aj používateľom, ktorí nehovoria po anglicky, využívať obsah o produktoch, službách a technológiách spoločnosti Microsoft. Článok bol preložený strojovo, môže preto obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky.

Rozšírte svoje zručnosti
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.

×