Korišćenje upita za združivanje radi kombinovanja više upita u jedan rezultat

Korišćenje upita za združivanje radi kombinovanja više upita u jedan rezultat

Važno : Ovaj članak je mašinski preveden, pogledajte odricanje odgovornosti. Pogledajte verziju ovog članka na engleskom jeziku ovde za referencu.

Pretpostavimo da u Access bazu podataka ima dva nepovezanih tabela – onu koja skladišti korisničkih podataka i drugo koje skladišti podatke o dobavljačima – i obe tabele imaju polje za kontakt informacije. Želite da vidite kontakt informacije iz obe tabele u jednom prikazu. Da biste to uradili, prvo Kreirajte upit za izdvajanje za svaku tabelu da biste preuzeli informacije o kontaktu, a zatim Kombinovanje rezultate tako što ćete kreirati upit za združivanje.

Napomena : Sadržaj u ovom članku je predviđena za korišćenje s Access bazama podataka na radnoj površini. Ne možete da kreirate ili koristite upit za združivanje u Access Veb baze podataka ili Access Veb aplikacije.

Potrebno je da se podsetite kreiranja osnovnih upita za izdvajanje? Pogledajte članak Kreiranje jednostavnog upita za izdvajanje.

Najpre, evo nekoliko stvari koje je potrebno znati o kreiranju upita za združivanje:

  • Upiti za izdvajanje koje kombinujete u upit za združivanje moraju da imaju isti broj izlaznih polja po istom redosledu i sa istim ili kompatibilnim tipovima podataka. Kada pokrenete upit za združivanje, podaci iz svakog skupa odgovarajućih polja kombinuju se u jedno izlazno polje da bi svaki izlaz upita imao isti broj polja kao svaki od SELECT izraza.

  • Upit za združivanje specifičan je za SQL pa zbog toga mora da bude napisan direktno u SQL-u. Da biste pisali upite specifične za SQL, uključujući upite za združivanje, prebacite se na SQL prikaz.

1. korak: kreiranje upita za izdvajanje

Napomena : Iako u upit možete da uključite više tabela ili upita, ova procedura pretpostavlja da svaki upit za izdvajanje sadrži podatke iz samo jedne tabele.

  1. Na kartici Kreiranje, u grupi Upiti kliknite na dugme Dizajn upita.

  2. U dijalogu Prikazivanje tabele kliknite dvaput na tabelu koja sadrži polja koja želite da uključite. Tabela će biti dodata u prozor za dizajn upita.

  3. Zatvorite dijalog Prikazivanje tabele.

  4. U prozoru za dizajn upita kliknite dvaput na svako polje koje hoćete da uključite.
    Dok birate polja, uverite se da ste dodali isti broj polja, istim redosledom kao i u druge upite za izdvajanje. Obratite pažnju na tipove podataka polja i proverite da li imaju kompatibilne tipove podataka sa poljima na istoj poziciji u drugim upitima koje kombinujete. Na primer, ako prvi upit za izdvajanje ima pet polja od kojih prvo sadrži podatke o datumu/vremenu, proverite da li svaki od drugih upita za izdvajanje koje kombinujete takođe ima pet polja od kojih prvo sadrži podatke o datumu/vremenu i tako dalje.

  5. Opcionalno, dodajte kriterijume u polja tako što ćete otkucati odgovarajuću izraza u red kriterijumi polja koordinatne mreže.

  6. Kada završite sa dodavanjem polja i kriterijume polja, trebalo bi da pokrenete upit za izdvajanje i pregledate njegov rezultat. Na kartici Dizajn , u grupi Rezultati kliknite na dugme Pokreni.

  7. Prebacite upit na prikaz dizajna.

  8. Sačuvajte upit za izdvajanje i ostavite ga otvorenog.

  9. Ponovite ovu proceduru za svaki od upita za izdvajanje koje želite da kombinujete.

Više informacija o korišćenju kriterijuma u upitu potražite u članku Primenjivanje kriterijuma na upit.

2. korak: kombinovanje upita za izdvajanje

U ovom koraku kreirate upit za združivanje pomoću SQL instrukcije. (Više informacija potražite u članku odeljku SQL sintaksa ispod.)

  1. Na kartici Kreiranje, u grupi Upiti kliknite na dugme Dizajn upita.

  2. Zatvorite dijalog Prikazivanje tabele.

  3. Na kartici Dizajn, u grupi Upit kliknite na dugme Združivanje.

Access skriva prozor dizajna upita, a prikazuje karticu objekta SQL prikaza. U ovom trenutku kartica objekta SQL prikaza je prazna.

  1. Izaberite karticu za prvi upit za izdvajanje koji želite da kombinujete u upitu za združivanje.

  2. Na kartici Početak izaberite stavku Prikaz > SQL prikaz.

  3. Kopirajte SQL instrukciju za upit za izdvajanje. Izaberite karticu za upit za združivanje koji ste počeli da kreirate u 1. koraku.

  4. Nalepite SQL instrukciju za upit za izdvajanje u karticu objekta u SQL prikazu upita za združivanje.

  5. Izbrišite znak tačka i zarez (;) na kraju SQL instrukcije upita za izdvajanje.

  6. Pritisnite taster Enter da biste premestili kursor jedan red nadole, a zatim otkucajte reč UNION u novom redu.

  7. Izaberite karticu za sledeći upit za izdvajanje koji želite da kombinujete u upitu za združivanje.

  8. Ponovite korake od 5. do 10. dok ne kopirate i nalepite sve SQL instrukcije za upite za izdvajanje u prozor SQL prikaza upita za združivanje. Nemojte brisati tačku i zarez niti kucati išta nakon SQL instrukcije za poslednji upit za izdvajanje.

  9. Na kartici Dizajn, u grupi Rezultati kliknite na dugme Pokreni.

Rezultati upita za združivanje pojavljuju se u prikaz lista sa podacima.

Vrh stranice

Saveti za upotrebu upita za združivanje

  • Da biste mogli da razlikujete redove koji su došli iz različitih tabela, u svaku instrukciju za izdvajanje dodajte tekstualnu nisku kao polje.

    Na primer, ako jedna instrukcija za izdvajanje preuzima polja iz tabele pod imenom „Proizvodi“, a druga polja iz tabele pod imenom „Usluge“, dodajte nisku „Proizvod“ kao polje na kraju prve instrukcije i nisku „Usluge“ na kraju druge instrukcije. Takođe, možete da niskama dodelite pseudonim polja (na primer, „tip“) koristeći ključnu reč AS, kao što je prikazano u sledećem primeru:

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

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

    Izlaz upita će sadržati polje pod imenom „tip“ koje pokazuje da li je red potekao iz tabele „Proizvodi“ ili iz tabele „Usluge“.

  • Svaka UNION ključna reč kombinuje SELECT instrukcije koje se nalaze odmah ispred ili iza nje. Ako koristite ključnu reč ALL sa nekim UNION ključnim rečima u upitu, ali ne i sa drugima, rezultati će uključivati duplirane redove iz parova SELECT instrukcija koji su kombinovani putem odredbe UNION ALL, ali neće uključivati duplirane redove iz SELECT instrukcija koji su kombinovani putem odredbe UNION bez ključne reči.

  • Broj, tipovi podataka i redosled polja u upitima za izdvajanje moraju da se podudaraju. Da biste podesili podudaranje možete da koristite izraze kao što su izračunavanja ili podupiti.

    Na primer, možete da ostvarite podudaranje polja za godinu sa dva znaka sa poljem za godinu sa četiri znaka putem funkcije Right kako biste izdvojili poslednje dve cifre godine sa četiri znaka.

Korišćenje rezultata upita za združivanje u kreiranju nove tabele

Najpre upotrebite upit za združivanje kao ulaz za novi upit za izdvajanje, a zatim taj upit za izdvajanje upotrebite kao osnovu upita za pravljenje tabele, kao što je prikazano u sledećim koracima:

  1. Kreirajte i sačuvajte upit za združivanje.

  2. Na kartici Kreiranje, u grupi Upiti kliknite na dugme Dizajn upita.

  3. U dijalogu Prikazivanje tabele izaberite karticu Upiti.

  4. Kliknite dvaput na upit za združivanje, a zatim zatvorite dijalog Prikazivanje tabele.

    Napomena : Ako na traci sa porukama vidite bezbednosno upozorenje, možda su radni upiti onemogućeni. Da biste ih omogućili, izaberite stavku Omogući sadržaj na traci sa porukama.

  5. U koordinatnoj mreži za dizajn upita za združivanje, na kartici objekta upita kliknite dvaput na zvezdicu (*) kako biste upotrebili sva polja upita za združivanje da biste napravili novu tabelu.

  6. Na kartici Dizajn, u grupi Tip upita kliknite na dugme Pravljenje tabele.

  7. U dijalogu Kreiranje tabele otkucajte ime za novu tabelu.

  8. Opcionalno možete i da navedete drugačiju bazu podataka u kojoj će se tabela kreirati.

  9. Kliknite na dugme U redu.

  10. Na kartici Dizajn, u grupi Rezultati kliknite na dugme Pokreni.

Korišćenje upita za združivanje u kompletnom spoljnom spajanju

Upit za združivanje možete da koristite da biste izvršili kompletno spoljni spoj. Kompletno spoljno spajanje ne ograničava redove koji se vraćaju iz pridruženih tabela, ali kombinuje redove na osnovu vrednosti u pridruženom polju.

  1. Kreirajte upit koji ima levo spoljno spajanje u polju koje želite da koristite za kompletno spoljno spajanje.

  2. Na kartici Početak, u grupi Prikazi kliknite na dugme Prikaži, a zatim izaberite stavku SQL prikaz.

  3. Pritisnite kombinaciju tastera Ctrl+C da biste kopirali SQL kôd.

  4. Izbrišite tačku i zarez na kraju odredbe FROM, a zatim pritisnite taster Enter.

  5. Otkucajte reč UNION, a zatim pritisnite taster Enter.

    Napomena : Nemojte koristiti ključnu reč ALL kada koristite upit za združivanje za izvršavanje kompletnog spoljnog spajanja.

  6. Pritisnite kombinaciju tastera Ctrl+V da biste nalepili SQL kôd koji ste kopirali u 3. koraku.

  7. U kodu koji ste nalepili promenite reči LEFT JOIN u RIGHT JOIN.

  8. Izbrišite tačku i zarez na kraju druge odredbe FROM, a zatim pritisnite taster Enter.

  9. Dodajte odredbu WHERE koja navodi da je vrednost pridruženog polja NULL u prvoj tabeli navedenoj u odredbi FROM (u levoj tabeli).

    Na primer, ako je odredba FROM:

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

    Dodaćete sledeću odredbu WHERE:

    WHERE Products.ID IS NULL

  10. Otkucajte tačku i zarez (;) na kraju odredbe WHERE da biste označili kraj upita za združivanje.

  11. Na kartici Dizajn u grupi Rezultati kliknite na dugme Pokreni.
    Rezultati upita za združivanje pojavljuju se u prikaz lista sa podacima.

Više informacija potražite u članku spajanje izvora podataka u upitu.

Vrh stranice

Zahtevi i SQL sintaksa za upit za združivanje

Neki zahtevi upita za združivanje

  • Upiti za izdvajanje koje kombinujete u upit za združivanje moraju da imaju isti broj izlaznih polja po istom redosledu i sa istim ili kompatibilnim tipovima podataka. Kada pokrenete upit za združivanje, podaci iz svakog skupa odgovarajućih polja kombinuju se u jedno izlazno polje da bi svaki izlaz upita imao isti broj polja kao i svaki SELECT izraz.

    Napomena : Za svrhe upita za združivanje, tipovi podataka „Broj“ i „Tekst“ su kompatibilni.

  • Upit za združivanje specifičan je za SQL pa zbog toga mora da bude napisan direktno u SQL-u. Da biste pisali upite specifične za SQL, uključujući upite za združivanje, prebacite se na SQL prikaz.

SQL sintaksa upita za združivanje

Svaki upit za izdvajanje (koji se naziva i SELECT izraz) u upitu za združivanje ima sledeće odredbe:

Odredba

Sadrži listu…

SELECT

polja koja sadrže podatke koje želite da preuzmete.

FROM

tabela koje sadrže ta polja.

Opcionalno WHERE

kriterijuma za ta polja.

SELECT izrazeinstrukcije kombinuju se korišćenjem ključne reči UNION.

Osnovna SQL sintaksa za upit za združivanje koji kombinuje dva upita za izdvajanje je sledeća:

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

Na primer, u bazi podataka nalazi se tabela pod imenom „Proizvodi“ i druga pod imenom „Usluge“, a obe tabele imaju polja koja sadrže ime proizvoda ili usluge, cenu, dostupnost garancije i jemstva i informacije o tome da li vi ekskluzivno pružate proizvod ili uslugu. Iako tabela „Proizvodi“ skladišti informacije o garanciji, a tabela „Usluge“ skladišti informacije o jemstvu, osnovne informacije su iste (da li određeni proizvod ili usluga uključuju garantovani kvalitet). Možete da koristite upit za združivanje poput sledećeg kako biste kombinovali četiri polja iz dve tabele:

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

Prođimo kroz prethodni primer sintakse, red po red:

Sintaksa

Objašnjenje

Dodatne informacije

SELECT ime, cena, dostupna_garancija, ekskluzivna_ponuda

Prva odredba SELECT

Nakon odredbe SELECT sledi lista identifikatora koji ukazuju na polja iz kojih želite da preuzmete podatke.

Odredba SELECT mora da navodi najmanje jedno polje.

Ova odredba SELECT navodi identifikatore polja ime, cena, dostupna_garancija i ekskluzivna_ponuda.

FROM Proizvodi

Prva odredba FROM

Odredba FROM sledi nakon odredbe SELECT i one zajedno čine osnovni SELECT izraz.

Nakon odredbe FROM sledi lista identifikatora. Oni ukazuju na tabele koje sadrže polja koja su navedena u odredbi SELECT.

Odredba FROM mora da navodi najmanje jednu tabelu.

Ova odredba FROM navodi identifikator tabele Proizvodi.

UNION ALL

Ključna reč UNION i opcionalna ključna reč ALL

Rezultati SELECT izraza koji prethodi ključnoj reči UNION kombinuju se sa rezultatima SELECT izraza koji sledi nakon reči UNION.

Kada koristite ključnu reč ALL, duplirani redovi se ne uklanjanju iz rezultata upita za združivanje.

Korišćenjem ključne reči ALL upit može da se izvršava brže pošto Access ne mora da proverava postoje li duplirani redovi.

Koristite ključnu reč ALL ako je ispunjen neki od sledećih uslova:

  • Sigurni ste da upiti za izdvajanje neće kreirati duplirane redove.

  • Nije vam bitno da li u rezultatima postoje duplirani redovi.

  • Želite da vidite duplirane redove.

SELECT ime, cena, dostupno_jemstvo, ekskluzivna_ponuda

Druga odredba SELECT

Neka pravila:

  • Potrebno je da druga odredba SELECT ima isti broj polja kao i prva odredba SELECT.

  • Potrebno je da se polja koja dele zajedničke podatke pojavljuju istim redosledom u odredbi.

  • Potrebno je da polja koja dele zajedničke podatke imaju iste ili kompatibilne tipove podataka.

Napomena : Imena polja u izlazu upita za združivanje su iz prve odredbe SELECT. Zbog toga se u našem primeru podaci iz polja „dostupna_garancija“ i iz polja „dostupno_jemstvo“ u izlazu upita nazivaju „dostupna_garancija“.

FROM Usluge

Druga odredba FROM

Za tabele u odredbama FROM upita za združivanje ne postoje ograničenja. Možete da kreirate upit za združivanje koji koristi iste tabele u svakoj odredbi FROM. U odredbama FROM možete da imate različite brojeve tabela. U našem primeru, svaka odredba FROM ima samo jednu tabelu.

Vrh stranice

Napomena : Odricanje odgovornosti za mašinski prevod: Ovaj članak je preveo računarski sistem bez ljudske intervencije. Microsoft nudi ove mašinske prevode da bi pomogao korisnicima koji ne govore engleski da uživaju u sadržaju o Microsoft proizvodima, uslugama i tehnologijama. Budući da je članak mašinski preveden, može da sadrži greške u rečniku, sintaksi ili gramatici.

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Office Insider korisnicima

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Zvuči da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×