Spajanje tablica i upita

Kada u upit programa Access uvrstite više izvora podataka, koristite spojeve da biste ograničili zapise koje želite vidjeti, na temelju načina na koji su izvori podataka međusobno Srodni. Možete koristiti i spojeve da biste kombinirali zapise iz izvora podataka, tako da svaki par zapisa iz izvora postane jedan zapis u rezultatima upita.

U ovom se članku raspravlja o različitim vrstama spojeva i prikazuje kako ih koristiti u upitu. Spoj se po zadanom automatski stvara ako već postoji odnos između dvaju izvora podataka koje koristite u upitu. Stvara se i spoj ako postoje polja koja jasno međusobno odgovaraju. Možete izbrisati automatski stvoreni spoj. U ovom se članku navode osnovne informacije o odnosima između tablica, uključujući kako ga stvoriti.

Napomena: Upite možete pridružiti na isti način na koji se pridružite tablicama, a možete se i udružiti.

Sadržaj članka

Pregled

Vrste spojeva

Prikaz redaka u kojima postoje česte vrijednosti u obje spojene tablice

Prikaz svih redaka iz jedne tablice i odgovarajuće retke iz druge tablice

Prikaz svih redaka iz obje tablice i njihovo uključivanje u mjesto na kojem postoje česte vrijednosti

Unakrsni spojevi

Spajanje tablica na temelju nejednakosti vrijednosti polja

Brisanje spoja

Pregled

Baza podataka zbirka je tablica podataka koja međusobno nose logičke odnose. Možete koristiti odnose za povezivanje tablica prema poljima koja imaju zajedničko. Tablica može biti dio bilo kojeg broja odnosa, ali svaki odnos uvijek sadrži točno dvije tablice. U upitu se odnos predstavlja kao spoj.

Kada dodate tablice u upit, Access stvara spojeve koji se temelje na odnosima koji su definirani između tablica. Spojeve možete ručno stvarati u upitima, čak i ako ne predstavljaju odnose koji su već definirani. Ako koristite druge upite (umjesto ili osim tablica) kao izvore podataka za upit, možete stvarati spojeve između izvorišnih upita, a i između tih upita i svih tablica koje koristite kao izvore podataka.

Spojevi se ponašaju slično prema kriterijima upita u kojima se određuju pravila koja podaci moraju odgovarati da bi bili uvršteni u operacije upita. Za razliku od kriterija, spojevi također određuju da će se svaki par redaka koji zadovoljavaju uvjete spoja kombinirati u skupu zapisa da bi se formira jedan redak.

Postoje četiri osnovne vrste spojeva: unutarnji spojevi, vanjski spojevi, unakrsni spojevi i Nejednaki spojevi. U ovom se članku istražuje svaka vrsta spoja koju možete koristiti, zašto koristite svaku vrstu i kako stvoriti spojeve.

Spojevi su upiti koji se odnosi na tablice: indikacija kako se podaci u dva izvora mogu kombinirati na temelju vrijednosti podataka koje imaju zajedničko. Evo ilustracije spoja u prikazu dizajna upita, a Svojstva spoja otvaraju se u dijaloškom okviru:

Okvir svojstva spoja.

Ovaj redak između tablica predstavlja spoj. Dvokliknite spoj da biste otvorili dijaloški okvir Svojstva spoja (opisan) i pregledali ili promijenili spoj.

Spojevi se ponekad usmjeruju. U ovom se području u dijaloškom okviru prikazuje koja je tablica u programu Join i koja se polja koriste za uključivanje u tablice.

U ovom se području određuje vrsta spoja: opcija 1 je unutarnji spoj, 2 je lijeva vanjska spoj, a 3 je desni vanjski spoj.

Mogu se koristiti polja iz obje tablice, a podaci koji se odnose na određeni zadatak prikazuju se iz svakog od njih. U unutarnjem dijelu spoja nije obuhvaćen nijedan drugi podatak. U odjeljku Rezultati upita uvršteni su i povezani zapisi iz jedne tablice u vanjski spoj.

Vrh stranice

Vrste spojeva

Postoje četiri osnovne vrste spojeva: unutarnji spojevi, vanjski spojevi, unakrsni spojevi i Nejednaki spojevi. Unakrsni spojevi i Nejednaki spojevi napredni su tipovi spoja i rijetko se koriste, no trebali biste znati da imaju potpuno razumijevanje načina na koji spojevi funkcioniraju.

Unutarnji spojevi: kombinirani samo Srodni podaci iz obiju tablica

Unutarnji spoj jedan je u kojem Access sadrži samo podatke iz tablice ako u povezanu tablicu postoje odgovarajući podaci i obratno. Većinu vremena koristit ćete unutrašnje spojeve. Kada stvorite spoj i ne navedete kakav je to spoj, Access će pretpostaviti da želite unutarnji spoj. Unutarnji spojevi korisni su jer vam omogućuju kombiniranje podataka iz dvaju izvora na temelju zajedničkih vrijednosti – tako da se prikazuju samo podaci kada je slika cjelovita.

Vanjski spojevi: svi Srodni podaci pravilno spojeni, plus svi preostali zapisi iz jedne tablice

Vanjski je spoj kao unutarnji spoj, ali zbraja preostale retke iz jedne od tablica. Vanjski spojevi usmjereni su: lijeva vanjska veza obuhvaća sve zapise iz ljeve tablice – prve tablice u programu Join – a desni vanjski spoj obuhvaća sve zapise iz desne tablice – drugu tablicu u programu Join.

Puni vanjski spojevi: svi podaci, kombinirani gdje je moguće

U nekim sustavima vanjski spoj može uključivati sve retke iz obje tablice, s recima kombiniranim kada se podudaraju. To se naziva cijeli vanjski spoj, a Access ih ne podržava eksplicitno. Međutim, možete koristiti unakrsni spoj i kriterij da biste postigli isti učinak.

Unakrsni spojevi: svi podaci, kombinirani svaki mogući način

Unakrsno spajanje predstavlja nuspojavu dodavanja dviju tablica u upit, a zatim im se zaboravlja pridružiti. Access interpretira to znači da želite vidjeti svaki zapis iz jedne tablice u kombinaciji sa svakim zapisom iz druge tablice – svakoj mogućoj kombinaciji zapisa. Budući da se podaci ne mogu kombinirati, ova vrsta spoja rijetko proizvodi korisne rezultate. No, postoji nekoliko slučajeva kada je unakrsni spoj upravo ono što vam je potrebno.

Nejednaki spojevi: kao pravilan spoj, ali pomoću različite usporedbe za kombiniranje redaka

Nejednaki spojevi koriste operator koji nije znak jednakosti (=) da biste usporedili vrijednosti i utvrdili da li i kako kombinirati podatke. Nejednaki spojevi nisu izričito podržani, ali možete koristiti unakrsni spoj i kriterij za postizanje istog učinka.

Prikaz redaka u kojima postoje česte vrijednosti u obje spojene tablice

Ako želite prikazati samo one retke koji imaju podudarne vrijednosti u spojenom polju, koristite unutarnji spoj. Access automatski stvara unutarnje spojeve.

Unutrašnja su pridruživanja najčešća. Kažu da retke iz jedne od pridruženih tablica odgovaraju recima u drugoj tablici, na temelju podataka u pridruženim poljima. Kada se pokreće upit s unutarnjim pridruživanjem, u operacijama upita bit će obuhvaćene samo one retke u kojima postoji najčešća vrijednost u obje spojene tablice.

Kako koristiti unutarnji spoj?

Većinu vremena ne morate ništa učiniti da biste koristili unutarnji spoj. Ako tablice koje dodate u upit već imaju odnose, Access automatski stvara unutarnji spoj između svakog para srodnih tablica kada dodate tablice. 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 u upit dodate dvije tablice, a te tablice svaki sadrži polje s istom ili kompatibilnom vrstom podataka, a jedno od polja spoja jest primarni ključ. Simboli "jedan" i "Mnogi" ne prikazuju se u ovom slučaju jer se ne provodi referencijalni integritet.

Ako u upit dodate upite, a niste stvorili odnose između tih upita, Access neće automatski stvarati unutrašnje spojeve između tih upita ili između upita i tablica. Općenito, trebali biste ih sami stvoriti. Unutrašnje spajanje stvarate povlačenjem polja iz jednog izvora podataka u polje u drugom izvoru podataka. Access će prikazati crtu između dva polja koja upućuje na to da je spoj stvoren.

SQL sintaksa za unutarnji spoj

Unutarnji spojevi navedeni su u sustavu SQL u uvjetu FROM, kao što je prikazano u nastavku:

FROM tablica1 INNER JOIN tablica2 ON tablica1.Da biste usporedili Tablica2.polje2

Operacija INNER JOIN sastoji se od sljedećih dijelova:

Dio

Opis

tablica1, tablica2

Nazivi tablica iz kojih se spajaju 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 usporedbe: "=," "<," ">," "<=," ">=," ili "<>."

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

Vrh stranice

Prikaz svih redaka iz jedne tablice i odgovarajuće retke iz druge tablice

Vanjski spojevi pričaju upit da, iako neki od redaka na obje strane spoja točno odgovaraju, upit bi trebao sadržavati sve retke iz jedne tablice, a i one retke iz druge tablice koje zajednički koriste uobičajena vrijednost na obje strane spoja.

Vanjski spojevi mogu biti ostavljeni izvan vanjskih spojeva ili mogu biti desno vanjski spojevi. U ljevicu vanjskog spoja upit obuhvaća sve retke iz prve tablice u uvjetu SQL naredba FROM, a samo one retke iz druge tablice u kojoj polje za spajanje sadrži vrijednosti koje su česte u obje tablice. U desnom vanjskom ulasku upit obuhvaća sve retke iz druge tablice u uvjetu SQL naredba FROM, a samo oni reci iz druge tablice u kojoj polje za spajanje sadrži vrijednosti koje su česte u obje tablice.

Napomena: Možete jednostavno objasniti koja je tablica lijeva tablica ili desna tablica u zadanom odjeljku spoj dvostrukim klikom na spoj, a zatim u dijaloškom okviru Svojstva spoja . Možete i prijeći na SQL prikaz, a zatim ispitati uvjet FROM.

Budući da neki od redaka na jednoj strani vanjskog spoja neće imati odgovarajuće retke iz druge tablice, neka od polja vraćena u rezultatima upita iz te druge tablice bit će prazna kada se reci ne podudaraju.

Kako koristiti vanjski spoj?

Vanjski spoj stvarate promjenom postojećeg unutarnjeg spoja. Ako ne postoji unutarnji spoj, stvorite ga, a zatim ga promijenite u vanjski spoj.

Promjena unutarnjeg spoja u vanjski spoj

  1. U prikazu dizajn upita dvokliknite spoj koji želite promijeniti.

    Prikazuje se dijaloški okvir Svojstva spoja.

  2. U dijaloškom okviru Svojstva spoja obratite pozornost na izbore navedene uz mogućnost 2 i mogućnost 3.

  3. Kliknite željenu mogućnost pa U redu.

  4. Access prikazuje spoj i prikazuje strelicu koja upućuje iz izvora podataka gdje će svi reci biti obuhvaćeni izvorom podataka u kojem će biti obuhvaćeni samo ovi reci koji zadovoljavaju uvjet spoja.

Nejasan vanjski spojevi

Ako stvorite upit koji sadrži lijevu spoj i unutarnji spoj, Access možda neće moći odrediti koji će se postupak uključivanja najprije izvršiti. Budući da se rezultati razlikuju ovisno o tome je li se prvi spoj ili unutrašnji spoj izvodi, Access prikazuje poruku o pogrešci:

Da biste ispravili tu pogrešku, morate izmijeniti upit tako da bude jasno koji će se prvi pridružiti.

SQL sintaksa za vanjski spoj

Vanjski spojevi navedeni su u sustavu SQL u uvjetu FROM, kao što je prikazano u nastavku:

OD Tablica1 [slijeva | DESNO] JOIN Tablica2
on Tablica1., usporedite Tablica2. polje2

Operacije LEFT JOIN i RIGHT JOIN imaju sljedeće dijelove:

Dio

Opis

tablica1, tablica2

Nazivi tablica iz kojih se spajaju 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 usporedbe: "=," "<," ">," "<=," ">=," ili "<>."

Dodatne informacije o sintaksi vanjskog spoja potražite u članku Upute za Uključivanje u stranu, desno pridruživanje.

Vrh stranice

Prikaz svih redaka iz obje tablice i njihovo uključivanje u mjesto na kojem postoje česte vrijednosti

Kada želite prikazati sve retke iz dviju tablica i pridružiti im se na temelju običnih vrijednosti, koristite cijeli vanjski spoj. Access izričito ne podržava potpune vanjske spojeve, no možete postići isti učinak pomoću upita s Unijom. U sljedećem se postupku objašnjava kako to učiniti, ali ako želite dodatne informacije o upitima u Uniji, pročitajte odjeljak Vidi također .

Da biste koristili upit s Unijom da biste izvršili cijeli vanjski spoj, učinite sljedeće:

  1. Stvorite upit koji ima lijevu vanjsku spoj na polju koje želite koristiti za cijeli vanjski spoj.

  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 Enter.

    Napomena: Ne koristite ključnu riječ za sve kada koristite upit s Unijom da biste izvršili cijeli vanjski spoj.

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

  7. U kodu koji ste zalijepili, promijenite lijevu pridruživanje u desno spajanje.

  8. Izbrišite točku sa zarezom na kraju drugog klauzula, a zatim pritisnite ENTER.

  9. Dodajte uvjet WHERE koji određuje da je vrijednost polja spoja NULL u prvoj tablici navedenoj u uvjetu FROM (lijevu tablicu).

    Primjerice, ako je uvjet FROM:

    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. Upišite točku s zarezom (;) na kraju uvjeta WHERE da biste naznačili kraj upita s Unijom.

  11. Na kartici Dizajn u grupi Rezultati kliknite Izvedi.

Unakrsni spojevi

Unakrsni spojevi razlikuju se od unutrašnjih i vanjskih spojeva u tome što nisu eksplicitno zastupljeni u Access. U unakrsnom spoju svaki se redak iz jedne tablice kombinira sa svakim retkom iz druge tablice, što rezultira onim što se zove križ proizvoda ili Kartezijski proizvod. Kad god pokrenete upit koji sadrži tablice koje nisu eksplicitno spojene, rezultat je unakrsni proizvod. Unakrsno spajanje obično je nenamjerno, ali postoje slučajevi u kojima mogu biti korisne.

Zašto se koristi unakrsni spoj?

Ako želite ispitati svaku moguću kombinaciju redaka između dviju tablica ili upita, upotrijebite unakrsni spoj. Pretpostavimo, primjerice, da je vaša tvrtka imala spektakularnu godinu, a vi razmatrate pružanje rebatesa kupcima. Možete stvoriti upit koji zbraja kupovine svakog klijenta, stvarati malu tablicu koja ima nekoliko mogućih postotaka popusta i kombinirati dva u drugom upitu koji izvodi unakrsno spajanje. Završit ćete pomoću upita koji prikazuje skup hipotetičkih promjena za svakog klijenta.

Kako koristiti unakrsni spoj?

Unakrsno spajanje stvara se u bilo kojem trenutku kada uvrstite tablice ili upite u upit i ne stvarate barem jedan eksplicitan 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 u svaki drugi redak rezultata. Razmislite o scenariju rabata iz prethodnog odlomka. Pretpostavimo da imate 91 kupaca i da želite pogledati pet mogućih postotaka popusta. Vaš unakrsni spoj proizvodi 455 redaka (proizvod 91 i 5).

Kao što možete zamisliti, nenamjerni unakrsni spojevi mogu stvarati veliki broj redaka u rezultatima upita. Osim toga, ti su rezultati općenito besmisleni, jer ako zapravo ne namjeravate kombinirati svaki redak sa svakim drugim retkom, većina kombiniranih redaka koji se pojavljuju u rezultatima neće imati smisla. Na kraju, upiti koji koriste slučajne unakrsne spojeve mogu potrajati dugo vremena.

Slučajni unakrsni spoj u prikazu dizajna upita

1. zaokružena polja trebala bi se međusobno priključiti.

Slučajni unakrsni umnožak

1. primjetite vrlo veliki broj zapisa.

Rezultat ispravnog upita

1. primjetite da je broj zapisa znatno manji.

Vrh stranice

Spajanje tablica na temelju nejednakosti vrijednosti polja

Spojevi se ne moraju temeljiti na ekvivalenciji pridruženih polja. Spoj se može temeljiti na bilo kojem operateru usporedbe, kao što je veći od (>), manje od (<) ili nije jednak (<>). Spojevi koji se ne temelje na ekvivalenciji nazivaju se Nejednaki spojevi.

Ako želite kombinirati retke dvaju izvora podataka na temelju vrijednosti polja koje nisu jednake, koristite nejednak spoj. Tipično, Nejednaki spojevi temelje se na većoj od (>), manje od (<), većoj od ili jednako (>=) ili manje od ili jednako (<=) operatorima usporedbe. Nejednaki spojevi koji se temelje na operateru nije jednak (<>) mogu vratiti gotovo onoliko redaka kao i unakrsne spojeve, a rezultati se mogu teško interpretirati.

Kako koristiti nejednaki spoj?

Nejednaki spojevi nisu podržani u prikazu dizajna. Ako ih želite koristiti, morate to učiniti pomoću SQL prikaza. Međutim, možete stvoriti spoj u prikazu dizajna, prijeći na SQL prikaz, pronaći operator usporedbe jednakih (=) i promijeniti ga u operator koji želite koristiti. Kada to učinite, upit možete otvoriti samo u prikazu dizajna ako prvi put promijenite operator usporedbe na jednako (=) u SQL prikazu.

Brisanje spoja

Ako Access automatski stvara spoj koji ne želite, ili ako greškom stvorite spoj – na primjer, spoj između dva polja koja imaju različite vrste podataka – možete izbrisati spoj.

  1. U rešetki dizajna upita kliknite spoj koji želite ukloniti.

  2. Pritisnite tipku DELETE.

– ili –

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

Vrh stranice

Napomena:  Ova je stranica strojno prevedena te može sadržavati gramatičke pogreške ili netočnosti. Naša je namjera da vam ovaj sadržaj bude koristan. Jesu li vam te informacije bile korisne? Kao referencu možete pogledati i članak na engleskom jeziku.​

Dodatni sadržaji

Dodavanje zapisa u tablicu pomoću upita s dodavanjem

Kombiniranje rezultata nekoliko upita s odabiranjem pomoću upita s Unijom

Stvaranje upita na temelju više tablica

Stvaranje, uređivanje ili brisanje odnosa

Proširite svoje vještine korištenja sustava Office
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.

×