Kombiniranje više upita u jedan rezultat pomoću upita s unijom

Kombiniranje više upita u jedan rezultat pomoću upita s unijom

Važno :  Ovaj je članak strojno preveden. Pogledajteizjavu o odricanju od odgovornosti. Verziju ovog članka na engleskom potražite ovdje.

Pretpostavimo da bazu podataka programa Access sadrži dvije nepovezanih tablica – onaj koji pohranjuje podatke o klijentu i drugi kojoj su pohranjeni podaci o dobavljače – i obje tablice imaju polje podaci za kontakt. Želite li u odjeljku podaci za kontakt iz obje tablice u jednom prikazu. Da biste to učinili, najprije stvorite upit odabiranja za svaku tablicu za dohvaćanje podataka za kontakt, a zatim kombinirati te rezultate tako da stvorite upit s unijom.

Napomena : Sadržaj u ovom se članku namijenjen je korištenju s bazama podataka na radnu površinu programa Access. Ne možete stvarati ni pomoću upita s unijom pristup web-baze podataka ili u web-aplikacijama programa Access.

Trebate li podsjetnik o stvaranju osnovnih upita s odabiranjem? Potražite u članku Stvaranje jednostavnog upita s odabiranjem.

Prvo nekoliko stvari koje morate znati o stvaranju upita s unijom:

  • upiti s odabiranjem koje ćete spojiti u upit s unijom moraju imati isti broj izlaznih polja navedenih istim redoslijedom te s istim ili kompatibilnim vrstama podataka. Kad pokrenete upit s unijom, podaci iz svakog niza odgovarajućih polja spajaju se u jedno izlazno polje tako da izlazni upit ima isti broj polja kao i svaka naredba SELECT.

  • Upit s unijom karakterističan je za SQL pa stoga mora biti napisan u njemu. Da biste pisali upite karakteristične za SQL među kojima su i upiti s unijom, prijeđite u SQL prikaz.

1. korak: stvaranje upita s odabiranjem

Napomena : Iako u upit odabiranja možete uvrstiti više tablica, u postupku se pretpostavlja da upiti odabiranja koriste podatke iz samo jedne tablice.

  1. Na kartici Stvaranje u grupi Upiti kliknite Dizajn upita.

  2. U dijaloškom okviru Prikaz tablice dvokliknite tablicu s poljima koja želite uvrstiti. Tablica se dodaje u prozor dizajna upita.

  3. Zatvorite dijaloški okvir Prikaz tablice.

  4. U prozoru dizajna upita dvokliknite svako polje koje želite uvrstiti.
    Tijekom odabira polja u sve upite odabiranja morate istim redoslijedom dodati isti broj polja. Obratite posebnu pozornost na vrste podataka u tim poljima te provjerite jesu li njihove vrste podataka kompatibilne s vrstama podataka u poljima koja se nalaze na istom položaju u ostalim upitima koje spajate. Ako, primjerice, vaš prvi upit s odabiranjem ima pet polja, od kojih prvo sadrži podatke o datumu/vremenu, provjerite ima li i svaki drugi upit odabiranja koji kombinirate također pet polja, od kojih prvo sadrži podatke o datumu/vremenu i tako dalje.

  5. Možete dodati kriterije polja unosom odgovarajuće izraza u retku kriterij rešetke polja.

  6. Kada završite s dodavanjem polja i kriterije polja, trebali biste pokrenite upit odabira i pregledajte rezultat. Na kartici Dizajn u grupi Rezultati kliknite Pokreni.

  7. Prebacite upit u prikaz dizajna.

  8. Spremite upit odabiranja i ostavite ga otvorenog.

  9. Ponovite taj postupak za svaki upit odabiranja koji želite spojiti.

Dodatne informacije o korištenju kriterija u upitu potražite u članku Primjena kriterija na upit.

2. korak: spajanje upita s odabiranjem

U ovom ćete koraku stvoriti upit s unijom i pomoću SQL naredbe. (Dodatne informacije potražite u članku u odjeljku SQL sintaksa ispod)

  1. Na kartici Stvaranje u grupi Upiti kliknite Dizajn upita.

  2. Zatvorite dijaloški okvir Prikaz tablice.

  3. Na kartici Dizajn u grupi Upit kliknite Unija.

Access skriva prozor za dizajniranje upita i prikazuje objektnu karticu SQL prikaz. Trenutno je objektna kartica SQL prikaz prazna.

  1. Kliknite karticu prvog upita odabiranja koji želite spojiti u upitu s unijom.

  2. Na kartici Polazno kliknite Prikaz > SQL prikaz.

  3. Kopirajte SQL naredbu za upit s odabiranjem. Kliknite karticu upita s unijom koji ste počeli stvarati u prvom koraku.

  4. Zalijepite SQL naredbu za upit odabiranja na karticu objekta SQL prikaz upita s unijom.

  5. Izbrišite točku sa zarezom koja se nalazi na kraju SQL naredbe upita odabiranja.

  6. Pritisnite Enter da biste premještanje pokazivača jedan redak prema dolje, a zatim upišite UNION novi redak.

  7. Kliknite karticu sljedećeg upita odabiranja koji želite spojiti u upitu s unijom.

  8. Ponavljajte postupak od petog do desetog koraka sve dok u prozor SQL prikaz upita s unijom ne kopirate i zalijepite sve SQL naredbe za upite odabiranja. U posljednjem upitu s unijom ne brišite točku sa zarezom i ne upisujte ništa iza SQL naredbe.

  9. Na kartici Dizajn u grupi Rezultati kliknite Pokreni.

Rezultati upita s unijom pojavljuju se u prikaz podatkovnog lista.

Vrh stranice

Savjeti za korištenje upita s unijom

  • Da biste mogli razlikovati koji reci dolazi iz koje tablice, dodajte tekstni niz kao polje u svaku od svojih izjava odabira.

    Ako, primjerice, jedna naredba s odabiranjem dohvaća polja iz tablice Proizvodi, a druga dohvaća polja iz tablice Usluge, dodajte niz "Proizvod" kao polje na kraju prve izjave te niz "Usluga" na kraju druge naredbe. Pomoću ključne riječi AS možete nizovima dodijeliti i pseudonim polja (primjerice "vrsta"), kao što je prikazano u sljedećem primjeru:

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

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

    Izlaz upita imao bi polje nazvano "vrsta" koje bi prikazivalo je li redak dohvaćen iz tablice Proizvodi ili Usluge.

  • Svaka ključna riječ UNION spaja naredbe SELECT koje se nalaze neposredno ispred i iza ključne riječi. Ako uz neke ključne riječi UNION koristite ključnu riječ ALL, a uz ostale je ne koristite, rezultati će imati dvostruke retke iz parova naredbi SELECT koje se spajaju pomoću ključnih riječi UNION ALL, ali neće imati dvostruke retke iz naredbi SELECT koje se spajaju pomoću ključne riječi UNION, bez ključne riječi ALL.

  • Broj, vrsta podataka i redoslijed polja u upitu odabira moraju se podudarati. Možete se poslužiti izrazima kao što su izračuni ili podupiti da biste ih učinili podudarnima.

    Polje godine zapisane u dvoznamenkastom obliku možete, primjerice, izjednačiti s poljem godine zapisane u četveroznamenkastom obliku pomoću funkcije Desno da biste izdvojili zadnje dvije znamenke iz godine zapisane u četveroznamenkastom obliku.

Korištenje rezultata upita s unijom za stvaranje nove tablice

Prvo korištenje upita s unijom kao ulaznih podataka za stvaranje novog upita odaberite, a zatim koristiti taj upit s odabiranjem kao temelj za upit sa stvaranjem tablice, kao što je prikazano u sljedećim koracima:

  1. Stvorite upit s unijom i spremite ga.

  2. Na kartici Stvaranje u grupi Upiti kliknite Dizajn upita.

  3. U dijaloškom okviru Prikaz tablice kliknite karticu Upiti.

  4. Dvokliknite upit s unijom, a zatim zatvorite dijaloški okvir Prikaz tablice.

    Napomena : Ako se na traci za poruke prikaže sigurnosno upozorenje, možda su onemogućeni akcijski upiti. Da biste omogućili izvršavanje akcijskih upita, na traci za poruke kliknite Omogući sadržaj.

  5. U rešetki dizajna upita na kartici objekta upita s unijom dvokliknite zvjezdicu (*) da biste izradili novu tablicu koristeći sva polja upita s unijom.

  6. Na kartici Dizajn u grupi Vrsta upita kliknite Stvaranje tablice.

  7. U dijaloški okvir Stvaranje tablice unesite naziv nove tablice.

  8. Ako želite, navedite drugu bazu podataka u kojoj će biti stvorena tablica.

  9. Kliknite U redu.

  10. Na kartici Dizajn u grupi Rezultati kliknite Izvedi.

Korištenje upita s unijom za izvođenje potpunog vanjskog spoja

Upit s unijom možete koristiti za izvođenje potpunog vanjsko spajanje. Potpuni vanjski spoj ne ograničava broj redaka koji se vraćaju iz bilo koje od dodanih tablica, ali spaja retke na temelju vrijednosti u polju pridruživanja.

  1. U polju koje želite koristiti za potpuni vanjski spoj stvorite upit s lijevim vanjskim spojem.

  2. Na kartici Polazno u grupi Prikazi kliknite Prikaz, a zatim SQL prikaz.

  3. Pritisnite Ctrl+C da biste kopirali SQL kod.

  4. Izbrišite točku sa zarezom na kraju uvjeta FROM, a zatim pritisnite Enter.

  5. Upišite UNION, a zatim pritisnite tipku Enter.

    Napomena : Ako za izvođenje potpunog vanjskog spoja koristite upit s unijom, ne koristite ključnu riječ ALL.

  6. Pritisnite Ctrl+V da biste zalijepili SQL kod koji ste kopirali u trećem koraku.

  7. U kodu koji ste zalijepili operaciju LEFT JOIN promijenite u RIGHT JOIN.

  8. Izbrišite točku sa zarezom na kraju drugog uvjeta FROM, a zatim pritisnite Enter.

  9. Dodajte uvjet WHERE koji određuje da će vrijednost polja spoja u prvoj tablici navedenoj u uvjetu FROM (lijeva tablica) biti NULL.

    Kada bi, primjerice, uvjet FROM bio sljedeći:

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

    Dodali biste sljedeći uvjet WHERE:

    WHERE Products.ID IS NULL

  10. Na kraju uvjeta WHERE upišite točku sa zarezom (;) da biste označili kraj upita s unijom.

  11. Na kartici Dizajn u grupi Rezultati kliknite Pokreni.
    Rezultati upita s unijom pojavljuju se u prikaz podatkovnog lista.

Dodatne informacije potražite u članku Spajanje podatkovnih izvora u upitu.

Vrh stranice

Preduvjeti za upit s unijom i njegova SQL sintaksa

Neki preduvjeti za upit s unijom

  • Upiti s odabiranjem koje spajate u upitu s unijom moraju imati jednak broj izlaznih polja, ona moraju biti zapisana istim redoslijedom te sadržavati iste ili kompatibilne vrste podataka. Kada pokrenete upit s unijom, podaci iz svakog skupa odgovarajućih polja spajaju se u jedno izlazno polje tako da izlaz upita ima jednak broj polja kao i svaka od naredbi SELECT.

    Napomena : Za potrebe upita s unijom, vrste podataka Broj i Tekst su kompatibilne.

  • Upit s unijom specifičan je za SQL te se stoga mora pisati izravno u SQL-u. Prijeđite u SQL prikaz da biste pisali upite specifične za SQL, uključujući upite s unijom.

SQL sintaksa upita s unijom

U upitu s unijom svaki upit s odabiranjem (naziva se i naredba SELECT) mora sadržavati sljedeće uvjete:

Uvjet

Sadrži popis

SELECT

polja s podacima koje želite dohvatiti

FROM

tablice koje sadrže ta polja

Neobavezni WHERE

kriterija za ta polja

Naredbe SELECT spajaju se pomoću ključne riječi UNION.

Osnovna SQL sintaksa za upit s unijom jest sljedeća:

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

Ako, primjerice, u vašoj bazi podataka postoji tablica naziva Proizvodi i druga tablica naziva Usluge te obje tablice imaju polja u kojima su zapisani naziv proizvoda ili usluge, cijena, jamstvo ili dostupnost jamstva te nudite li proizvod ili uslugu ekskluzivno. Iako su u tablici Proizvodi spremljeni podaci o jamstvu, a u tablici Usluge informacije o garanciji, osnovna informacija je ista (isporučuje li se proizvod ili usluga uz jamstvo kvalitete). Upit s unijom možete koristiti za spajanje četiriju polja iz dvije tablice, kao što je to navedeno u sljedećem primjeru:

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

Pregledajmo prethodni primjer sintakse redak po redak:

Sintaksa

Objašnjenje

Dodatne informacije

SELECT naziv, cijena, dostupno_jamstvo, ekskluzivna_ponuda

Prvi uvjet SELECT

Iza uvjeta SELECT slijedi popis identifikatora na kojemu se navode polja iz kojih želite dohvatiti podatke.

U uvjetu SELECT mora biti navedeno barem jedno polje.

U ovom uvjetu SELECT navedeni su identifikatori polja naziv, cijena, dostupno_jamstvo i ekskluzivna_ponuda.

FROM Proizvodi

Prvi uvjet FROM

Uvjet FROM slijedi nakon uvjeta SELECT, a zajedno tvore osnovnu naredbu SELECT.

Iza uvjeta FROM slijedi popis identifikatora na kojemu se navodi koje tablice sadrže polja navedena u uvjetu SELECT.

U uvjetu FROM mora biti navedena barem jedna tablica.

U navedenom uvjetu FROM naveden je identifikator Proizvodi.

UNION ALL

Ključna riječ UNION i neobavezna ključna riječ ALL

Rezultati naredbe SELECT koja prethodi ključnoj riječi UNION spojit će se s rezultatima naredbe SELECT koja slijedi nakon UNION.

Kada koristite ključnu riječ ALL, iz kombiniranog skupa koji je proizvod upita s unijom, neće biti uklonjeni duplicirani reci.

Pomoću ključne riječi ALL upit će se izvoditi brže jer Access ne mora provjeravati duplicirane retke.

Koristite ključnu riječ ALL ako vrijedi bilo koji od sljedećih uvjeta:

  • sigurni ste da upiti s odabiranjem neće proizvesti dvostruke retke

  • nije važno ima li u rezultatima dvostrukih redaka

  • želite da se dvostruki reci prikazuju

SELECT naziv, cijena, dostupno_jamstvo, ekskluzivna_ponuda

Drugi uvjet SELECT

Neka pravila:

  • Drugi uvjet SELECT mora imati isti broj polja kao i prvi uvjet SELECT.

  • Polja sa zajedničkim podacima moraju se pojavljivati istim redoslijedom u uvjetu.

  • Polja koja imaju zajedničke podatke moraju sadržavati istu ili kompatibilnu vrstu podataka.

Napomena : Nazivi polja u izlazu upita s unijom preuzimaju se iz prvog uvjeta SELECT. Stoga će u našem primjeru podaci iz polja "dostupno_jamstvo" i polja "dostupna_garancija" u izlazu upita biti nazvani "dostupno_jamstvo".

FROM Usluge

Drugi uvjet FROM

Na tablice u uvjetima FROM u upitu s unijom ne primjenjuju se nikakva ograničenja. Možete stvoriti upit s unijom koji koristi iste tablice u svakom uvjetu FROM. Možete imati različiti broj tablica u uvjetima FROM. U našem primjeru svaki uvjet FROM sadrži samo jednu tablicu.

Vrh stranice

Napomena : Izjava o odricanju od odgovornosti za strojni prijevod: ovaj je članak preveo računalni sustav bez ljudske intervencije. Microsoft nudi strojne prijevode da bi korisnicima koji ne razumiju engleski omogućio čitanje sadržaja o Microsoftovim proizvodima, uslugama i tehnologijama. Budući da je preveden strojno, članak možda sadrži pogreške u vokabularu, sintaksi ili gramatici.

Proširite svoje vještine
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×