Spajanje tablica i upita

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

Kada uključite više izvora podataka u upitu programa Access, koristite spojeve da biste ograničili zapise koje želite vidjeti, na temelju kakvom izvore podataka u jedan drugome. I koristite spojeva za spajanje zapisa iz oba izvora podataka, tako da svaki par zapise iz izvora postaje jedan zapis u rezultatima upita.

U ovom se članku govori o raznim vrstama spojeva te se pokazuje kako koristiti spojeve u upitu. Prema zadanim postavkama spoj automatski se stvara postoji li već odnos između dvije izvore koji koriste u upitu. Spoj se stvara i ako postoje polja koja jasno odgovaraju međusobno povezani. Možete izbrisati automatski stvoreni spoja. Ovaj članak sadrži osnovne informacije o odnosima između tablica, uključujući i kako ga stvoriti.

Napomena : Možete se uključiti upita na isti način spajanje tablica, a možete pridružiti oboje.

Sadržaj članka

Pregled

Pokazuju retke tamo gdje postoje zajedničke vrijednosti u obje spojene tablice

Prikaži sve retke iz jedne tablice i odgovarajuće retke iz druge tablice

Prikaži sve retke iz obje tablice i uključiti ih tamo gdje postoje zajedničke vrijednosti

Unakrsni spojevi

Spajanje tablice na temelju nejednake vrijednosti polja

Brisanje spoja

Pregled

Baza podataka nije zbirka tablica s podacima koji nose logičke odnose jedni s drugima. Povezivanje tablica, polja koja imaju zajedničke pomoću odnosa. Tablice mogu biti dio proizvoljan broj odnosa, no svaki odnos uvijek ima točno dvije tablice. U upitu, odnosa predstavlja spoja.

Kada dodate tablice u upit, Access stvara spojevi koji se temelje na odnosa koji su definirani između tablica. Ručno možete stvarati spojeve u upitima, čak i ako ne predstavlja odnosa koji su već definirani. Ako koristite druge upite (umjesto ili uz tablice) kao izvor podataka za upit, možete stvarati spojeve između izvornih upita, a i između tih upita i sve tablice koje koristite kao izvor podataka.

Spojevi se ponašaju slično kao kriteriji upita, utvrđuju pravila kojim podaci moraju odgovarati kako bi bili uključeni u operacije upita. Za razliku od kriterija, spojevi također određuju da će svaki par redaka koji zadovoljava uvjete spoja biti kombiniran u skup podataka koji tvori jedan redak.

Četiri su osnovne vrste spojeva: unutarnji spojevi, vanjski spojevi, unakrsni spojevi i nejednaki spojevi. Ovaj članak istražuje svaku vrstu spoja koji možete koristiti, zašto se koristi svaki spoj i kako se stvaraju spojevi.

Vrh stranice

Pokazuju retke tamo gdje postoje zajedničke vrijednosti u obje spojene tablice

Ako u spojenom polju želite prikazati samo one retke kojima se vrijednosti podudaraju, poslužit ćete se unutarnjim spojem. Access automatski stvara unutarnje spojeve.

Unutarnji spojevi najuobičajenija su vrsta spoja. Oni govore upitu da reci s jedne spojene tablice odgovaraju recima u drugoj tablici na temelju podataka u spojnim poljima. Kad se pokrene upit s unutarnjim spojem, samo oni reci gdje zajednička vrijednost postoji u obje spojene tablice bit će uključeni u operacije upita.

Kako se koristi unutarnji spoj?

Najčešće nije potrebno učiniti ništa da biste dobili unutarnji spoj. Ako su tablice koje dodajete u upit već u nekom odnosu, Acces automatski stvara unutarnji spoj između parova međusobno povezanih tablica kada ih dodate u upit. Ako se primjenjuje referencijalna cjelovitost Access prikazuje "1" iznad crte spajanja da bi pokazao koja je tablice na strani "jednoga" u odnosu odnos preslikavanja jednog člana na više njih te znak beskonačnosti () da bi pokazala koja je tablica na strani "više".

Čak i ako niste stvorili odnose, Access automatski stvara unutarnje spojeve ako dodate dvije tablice u upit, a te tablice obje imaju polje s istom ili odgovarajućom vrstom podataka, a jedno od tih polja je primarni ključ. U ovom slučaju simboli "jedan" i "više" nisu prikazani jer nije nametnut referencijalni integritet.

Ako u svoj upit dodate upite, a niste stvorili odnos između tih upita, Access ne stvara automatski unutarnje spojeve između tih upita ili između upita i tablica. Općenito, trebali biste ih stvarati sami. Unutarnji spoj stvara se tako da se povuče polje iz jednog izvora podataka u polje drugog izvora podataka. Access prikazuje crtu između dva polja kako bi pokazao da je spoj stvoren.

SQL sintaksa za unutarnji spoj

Unutarnji spojevi u SQL kodu određeni su klauzulom FROM, kao što se vidi ispod:

FROM tablica1 INNER JOIN tablica2 ON tablica1. polje1 Usporedba tablica2. polje2

Operacija INNER JOIN sastoji se od sljedećih dijelova:

Dio

Opis

tablica1, tablica2

Nazivi tablica iz kojih se kombiniraju zapisi.

polje1, polje2

Nazivi spojenih polja. Ako nisu numerička, polja moraju biti iste vrsta podatka i sadržavati istovrsne podatke, ali ne moraju imati isti naziv.

Usporedba

Bilo koji relacijski operator uspoređivanja: "=," "<," ">," "<=," ">=," ili "<>."

Dodatne informacije o sintaksi unutarnjeg spoja potražite u temi Operacija INNER JOIN.

Vrh stranice

Prikaži sve retke iz jedne tablice i odgovarajuće retke iz druge tablice

Vanjski spojevi govore upitu da bi, iako neki reci na obje strane spoja točno odgovaraju, trebao uključiti sve retke iz jedne tablice i također one retke iz druge tablice koji dijele zajedničku vrijednost na obje strane spoja.

Vanjski spojevi mogu biti lijevi vanjski spojevi i desni vanjski spojevi. U lijevom vanjskom spoju upit uključuje sve retke iz prve tablice u SQL naredbi s klauzulom FROM i samo one retke iz druge tablice gdje spojno polje sadrži vrijednosti zajedničke objema tablicama. U desnom vanjskom spoju upit uključuje sve retke iz druge tablice u SQL naredbi s klauzulom FROM i samo one retke iz preostale tablice gdje spojno polje sadrži vrijednosti zajedničke objema tablicama.

Napomena : Lako možete odrediti koja je tablica lijeva ili desna u zadanom spoju tako da dvaput pritisnete spoj, a zatim pogledate u dijaloški okvir Svojstva spoja. Također možete prebaciti u SQL prikaz, a zatim pregledati klauzulu FROM.

Zbog toga što reci na jednoj strani vanjskog spoja neće imati odgovarajuće retke iz druge tablice, neka polja vraćena u rezultatima upita bit će prazna kad reci ne odgovaraju.

Kako se koristi vanjski spoj?

Vanjski se spoj može stvoriti preinakom postojećeg unutarnjeg spoja. Ako nema unutarnjih spojeva, dovoljno ga je stvoriti pa zatim promijeniti u vanjski.

Promjena unutarnjeg spoja u vanjski spoj

  1. U prikazu dizajna dvostruko pritisnite spoj koji želite promijeniti.

    Prikazuje se dijaloški okvir Svojstva spoja.

  2. U dijaloškom okviru Svojstva spoja obratite pažnju na odabire popisane pokraj mogućnosti 2 i mogućnosti 3.

  3. Pritisnite mogućnost koju želite upotrijebiti, a zatim pritisnite U redu.

  4. Access prikazuje spoj i pokazuje strelicu koja pokazuje od izvora podataka gdje će se uključiti svi reci prema izvoru podataka gdje će se uključiti samo oni reci koji zadovoljavaju uvjet spoja.

Dvosmisleni vanjski spojevi

Ako stvorite upit koji sadrži LEFT JOIN i UNUTARNJI SPOJ, Access možda nećete moći da biste utvrdili koji uključivanje operacija prvi. Budući da rezultate razlikuju se ovisno o tome lijevi spoj ili unutarnji spoj provodi najprije, Access prikazuje poruku o pogrešci:

Da biste ispravili tu pogrešku, morate promijeniti upit tako da bude jasno koji spoj prvi.

SQL sintaksa za vanjski spoj

Vanjski spojevi u SQL-u određeni su klauzulom FROM, kao što se vidi ispod:

FROM tablica1 [lijevo | DESNI] JOIN tablica2
na Tablica1.polje1 Usporedba tablica2.polje2

Operacije LEFT JOIN i RIGHT JOIN sastoje se od sljedećih dijelova:

Dio

Opis

tablica1, tablica2

Nazivi tablica iz kojih se kombiniraju zapisi.

polje1, polje2

Nazivi spojenih polja. Polja moraju biti iste vrsta podatka i sadržavati istovrsne podatke, ali ne moraju imati isti naziv.

Usporedba

Bilo koji relacijski operator uspoređivanja: "=," "<," ">," "<=," ">=," ili "<>."

Dodatne informacije o sintaksi vanjskog spoja potražite u temi LEFT JOIN, operacija SPAJANJA desno.

Vrh stranice

Prikaži sve retke iz obje tablice i uključiti ih tamo gdje postoje zajedničke vrijednosti

Kada želite da vam pokazuju sve retke iz dviju tablica i pridružiti im uobičajenih vrijednosti na temelju pomoću potpunog vanjskog spoja. Access ne podržava izričito potpuni vanjski spojevi, ali isti učinak možete postići pomoću upita s unijom. Sljedeći postupak objašnjava kako to učiniti, ali ako želite dodatne informacije o upitima s unijom, potražite u odjeljku Vidi također .

Da biste upit s unijom koristili za izvođenje potpunog vanjskog spoja, učinite sljedeće:

  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 koja se nalazi na kraju uvjeta FROM, a zatim pritisnite tipku 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 koja se nalazi na kraju drugog uvjeta FROM, a zatim pritisnite tipku 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 pritisnite Izvedi.

Unakrsni spojevi

Unakrsni spojevi razlikuju se od unutarnjih i vanjskih spojeva u koje se nisu eksplicitno predstavljeni u Access. U unakrsni spoj svakog retka iz jedne tablice kombiniraju se sa svakim retkom iz druge tablice, što se naziva i unakrsni umnožak ili Kartezijev umnožak. Svaki put kad pokrenete upit koji se sastoji od tablica koje nisu eksplicitno spojene, unakrsni umnožak je rezultat. Unakrsni spojevi najčešće su slučajni, ali postoje slučajevi u kojima zna biti korisno.

Zašto se koristi unakrsni spoj?

Želite li istražiti svaku moguću kombinaciju redaka dviju tablica ili upita, koristite unakrsni spoj. Na primjer, pretpostavimo da je vaša poslovna godina bila iznimno uspješna i razmišljate o tome da svojim klijentima date popuste. Možete izgraditi upit koji zbraja kupnje svakog klijenta, stvoriti malu tablicu koja ima nekoliko mogućih postotaka popusta i kombinirati dvoje u drugom upitu koji izvodi unakrsni upit. Završavate s upitom koji prikazuje moguće popuste za svakog klijenta.

Kako se koristi unakrsni spoj?

Unakrsni spoj proizvede se svaki put kad u upit uključite tablice ili upite i ne stvorite bar jedan eksplicitni spoj za svaku tablicu ili upit. Access kombinira svaki redak iz svake tablice ili upita, koji nije eksplicitno spojen s bilo kojom drugom tablicom ili upitom, sa svim recima u rezultatima. Zamislite scenarij s popustom iz prethodnog odlomka. Pretpostavite da imate 91 klijenta i želite vidjeti pet mogućih postotaka popusta. Vaš unakrsni spoj proizvodi 455 redaka (umnožak od 91 i 5).

Kako i zamišljate, slučajni unakrsni spojevi mogu stvoriti veliki broj redaka u vašim rezultatima upita. Štoviše, ti rezultati općenito su besmisleni jer, ako zapravo nemate namjeru kombinirati svaki redak sa svakim, većina kombiniranih redaka koja se pojavljuje u rezultatima neće imati smisla. I na kraju, upiti koji koriste slučajne unakrsne spojeve jako se dugo izvršavaju.

slučajni unakrsni spoj u prikazu dizajna upita
Slučajni unakrsni spoj u prikazu dizajna upita.

1. Zaokružena polja trebala bi biti spojena.

Slučajni unakrsni umnožak
Unakrsni umnožak Vraća slučajni unakrsni spoj opisane iznad.

1. Primijetite velik broj zapisa.

rezultat ispravnog upita
Rezultati nakon što je stvoren ispravan spoj.

1. Primijetite kako je broj zapisa puno manji.

Vrh stranice

Spajanje tablice na temelju nejednake vrijednosti polja

Spojevi ne moraju biti temeljeni na jednakosti spojnih polja. Spoj se može temeljiti na bilo kojem operatoru uspoređivanja, kao što su veće od (>), manje od (<) ili nije jednako (<>). Spojevi koji se ne temelje na jednakosti nazivaju se nejednaki spojevi.

Želite li kombinirati retke dvaju izvora podataka na temelju vrijednosti polja koje nisu jednake, koristite nejednaki spoj. U pravilu nejednaki spojevi temelje se na operatorima uspoređivanja ili veće od (>), manje od (<), veće od ili jednako (>=) ili manje od ili jednako (<=). Nejednaki spojevi koji se temelje na operatoru nije jednako (<>) mogu vratiti skoro onoliko redaka kao i unakrsni spojevi, a rezultat se teško može interpretirati.

Kako se koristi nejednaki spoj?

Nejednaki spojevi ne podržavaju se u prikazu dizajna. Ako ih želite koristiti, morate koristiti SQL prikaz. Međutim, spoj možete stvoriti u prikazu dizajna, prebaciti u SQL prikaz, pronaći operator uspoređivanja jednako (=) i promijeniti ga u operator koji želite. Kad to učinite, upit možete otvoriti u prikazu dizajna samo ako najprije u SQL prikazu promijenite operator uspoređivanja natrag u jednako (=).

Brisanje spoja

Ako Access automatski stvori spoj koji ne želite ili ako zbog pogreške stvorite neki spoj — primjerice, između dva polja koja imaju različite vrste podataka — te spojeve možete i izbrisati.

  1. U rešeci dizajna upita pritisnite spoj koji želite ukloniti.

  2. Pritisnite DELETE.

-ili-

  • U rešeci dizajna upita desnom tipkom miša pritisnite spoj koji želite ukloniti, a zatim pritisnite Izbriši.

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.

Dodatni sadržaji

Dodavanje zapisa u tablicu pomoću upita s dodavanjem

Spajanje rezultata nekoliko odabiranja pomoću upita s unijom

Stvaranje upita na temelju više tablica

Stvaranje, uređivanje i brisanje odnosa

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.

×