Spajanje tablica i upita

Napomena: Željeli bismo vam pružiti najnoviji sadržaj pomoći što je brže moguće i to na vašem jeziku. 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. Možete li nam pri dnu ove stranice javiti jesu li vam ove informacije bile korisne? Kao referencu možete pogledati i članak na engleskom jeziku.

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

Vrste spojeva

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 kriterija upita u tom se uspostaviti pravila koja se podaci moraju podudarati da bi bio uvršten u operacije upita. Za razliku od kriterija, spojevi odrediti da se svaki par retke koji zadovoljavaju uvjete spoja kombinirati u skupu zapisa za jedan redak.

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

Spojevi su za upite koji se odnosi su tablicama: naznaku kako se mogu kombinirati podataka u dva izvora na temelju vrijednosti podataka imaju zajednička. Slijedi ilustracija spoja u prikazu dizajna upita s svojstva spoja otvorena u dijaloškom okviru:

Okvir svojstva spoja.

Ova crta između tablica predstavlja spoja. Dvokliknite spoj da biste otvorili u dijaloškom okviru Svojstva spoja (opisane) i pregled ili promjena spoja.

Spojevi ponekad su usmjereni. U ovom području dijaloškog okvira prikazuje se koje tablice koja je u spoj, a polja koja se koriste za pridruživanje tablice.

Ovo je podrčju određena vrsta spoja: mogućnost 1 upućuje na unutarnji spoj, 2 na lijevi vanjski spoj, a 3 desni vanjski spoj.

Mogu se polja iz obiju tablica, a prikazuju se podaci koji se odnosi na zadani zadatak iz svake. U unutarnji spoj, uključen se bez podataka. U vanjski spoj, nepovezanih zapisa iz jedne tablice također se uključuju u rezultatima upita.

Vrh stranice

Vrste spojeva

Postoje četiri osnovne vrste spojeva: Unutarnji spojevi, vanjski spojevi, unakrsni spojevi i Nejednaki spojevi. Spaja unakrsno i Nejednaki spojevi su napredne vrste spoja i rijetko koristiti, ali je potrebno znati o njima da bi se cijeli objašnjenje funkcioniranja spojeva.

Unutarnji spojevi: samo međusobno povezani podaci iz obje tablice kombiniraju

Unutarnji spoj je u kojem Access sadrži samo podatke iz tablice ako postoji odgovarajuće podatke u povezanoj tablici i obrnuto. U većini slučajeva, koristit ćete Unutarnji spojevi. Kada stvorite spoj, a ne navedete je Kakvu vrstu spoja, Access pretpostavlja da želite unutarnji spoj. Unutarnji spojevi korisne su jer oni omogućuju kombiniranje podataka iz dvije izvora koji se temelji na zajedničke vrijednosti – tako da možete vidjeti samo podatke kada postoji potpuna slika.

Vanjski spojevi: sve povezane podatke ispravno spojeni i svi preostali zapisi iz jedne tablice

Vanjski spoj je poput unutarnji spoj, ali se dodaje preostale retke iz jedne tablice. Vanjski spojevi su usmjereni: lijevi vanjski spoj sadrži sve zapise iz Lijeva tablica – prve tablice u spoju – i desni vanjski spoj sve zapise iz desna tablica – druge tablice u spoju.

Potpuni vanjski spoj: svi podaci, spojeni ondje gdje je to moguće

U nekim sustavima vanjski spoj možete uključiti sve retke iz obje tablice s redaka kombinirati kada one odgovaraju. To se naziva potpuni vanjski spojevi i Access striktno ne podržava ih. No da biste postigli isti učinak možete koristiti unakrsnog spoja s kriterijem.

Unakrsni spoj: svi podaci, spojeni na sve moguće načine

U većini slučajeva, unakrsni spoj je strani efekt dodavanjem dvije tablice u upit i financije ih uključiti. Pristup tumači da biste znače koje želite vidjeti svaki zapis iz jedne tablice u kombinaciji s svaki zapis iz druge tablice – sve moguće kombinacije zapisa. Budući da nema podataka možete kombinirati, tu vrstu spoja rijetko daje korisne rezultate. No postoje nekoliko slučajeva kada je unakrsni spoj samo što vam je potrebno.

Nejednaki spojevi: nalik običnim spojevima, ali uz drugačiju usporedbu pri spajanju redaka

Nejednaki spojevi koristi operator osim znak jednakosti (=) za usporedbu vrijednosti i odredite želite li i kako da biste spojili podatke. Nejednaki spojevi izričito nisu podržani, no pomoću unakrsnog spoja s kriterijem da biste postigli isti učinak.

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

Ako želite prikazati samo one retke koji imaju odgovarajuće vrijednosti u polju spojene koristi unutarnji spoj. Access automatski stvara Unutarnji spojevi.

Unutrašnja su pridruživanja najčešća. Oni govore upitu da reci s jedne spojene tablice odgovaraju recima u drugoj tablici, na temelju podataka u spojena polja. Kada se upit s unutarnji spoj, samo retke tamo gdje postoje zajedničke vrijednosti u obje spojene tablice obuhvaćene operacije upita.

Kako se koristi unutarnji spoj?

U većini slučajeva, ne morate ništa da biste koristili unutarnji spoj. Ako tablice koje dodajete u upit već imaju odnose, Access automatski stvara unutarnji spoj između svakog para povezane tablice, prilikom dodavanja 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 Unutarnji spojevi ako dodate dvije tablice u upit i te tablice obje imaju polje s istom ili kompatibilnu vrstu podatka i od spojena polja je primarni ključ. Simboli "jedan" i "više" ne prikazuju se u tom slučaju jer ne nameće referencijalni integritet.

Ako dodate upite u upit, a niste stvorili odnose između tih upita, Access stvara automatski Unutarnji spojevi između tih upita ili između upita i tablica. Općenito govoreći, trebali biste ih stvarate sami. Unutarnji spoj stvorite povlačenjem polja iz jednog izvora podataka u polje drugog izvora 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 u određeni su klauzulom SQL klauzulom FROM, kao što je prikazano u nastavku:

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 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 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 iako neke retke s obje strane spoja točno odgovaraju, trebao uključiti sve retke iz jedne tablice i retke iz druge tablice zajedničko korištenje zajedničke vrijednosti s obje strane spoja.

Vanjski spojevi mogu biti lijevi vanjski spojevi ili može biti desni vanjski spojevi. U lijevi vanjski spoj upit sadrži 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 obje tablice. U desni vanjski spoj upit sadrži sve retke iz druge tablice u SQL naredbi s klauzulom from i samo one retke iz druge tablice gdje spojno polje sadrži vrijednosti zajedničke obje tablice.

Napomena: Možete jednostavno prepoznati koja je tablica lijeva tablica ili desna tablica u zadanom spoju tako da dvokliknete spoj, a zatim pogledate u dijaloškom okviru Svojstva spoja . Možete se prebaciti u SQL prikaz, a zatim provjerite uvjetu FROM.

Budući da neke retke na jednoj strani vanjskog spoja neće imati odgovarajuće retke iz druge tablice, neka polja vraća u rezultatima upita iz druge tablice bit će prazna kad reci ne odgovaraju.

Kako se koristi vanjski spoj?

Vanjski spoj stvorite izmjenom postojećih unutarnji spoj. Ako postoji bez unutarnji spoj, stvorili, a zatim ga promijenite vanjski spoj.

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. Kliknite željenu mogućnost pa U redu.

  4. Access prikazuje spoj i pokazuje strelicu koja pokazuje iz izvora podataka u svim recima položajem s izvorom podataka položajem samo one retke koji zadovoljavaju uvjet spoja.

Dvosmislene vanjske spojeve

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 određeni su klauzulom SQL klauzulom FROM, kao što je prikazano u nastavku:

FROM tablica1 [lijevo | DESNI] JOIN tablica2
na Tablica1.polje1 Usporedba 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 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 .

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

  1. Stvorite upit koji sadrži lijevi vanjski spoj u polju koje želite koristiti za potpuni 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 tipku ENTER.

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

    Napomena: Koristite ključnu riječ ALL kada koristite upit s unijom za izvođenje potpunog vanjskog spoja.

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

  7. Kod 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 tipku ENTER.

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

    Na primjer, ako je u uvjetu 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 sa zarezom (;) na kraju uvjeta WHERE označili kraj upita s unijom.

  11. Na kartici Dizajn u grupi Rezultati kliknite 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?

Ako želite da biste pregledali sve moguće kombinacije redaka između dvije tablice ili upita, koristi unakrsni spoj. Ako, na primjer, pretpostavimo da vaša tvrtka ima imali bila iznimno uspješna godine i razmišljate završavate klijentima. Možete izraditi 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 spoj. Završavanje pomoću upita koji prikazuje skup hipotetska završavate za svakog korisnika.

Kako se koristi unakrsni spoj?

Unakrsni spoj je sastavio svaki put kada uključiti tablica ili upita u upit i ne stvorite barem jedan eksplicitnih spoj za svaku tablicu ili upit. Access kombinira svaki redak u svaku tablicu ili upit koji nisu eksplicitno spojene bilo koju tablicu ili upit za svaki drugi redak u rezultatima. Razmislite o Zamislite scenarij iz prethodnog odlomka. Pretpostavimo da imate 91 klijenta i želite pogledati pet mogućih postotaka popusta. Unakrsni spoj proizvodi 455 redaka (umnožak od 91 i 5).

Kao što je možda zamislite slučajni unakrsni spojevi mogu stvoriti veliki broj redaka u rezultatima upita. Nadalje, te rezultate Općenito su besmisleni jer ako zapravo nemate namjeru kombinirati svaki redak sa svakog drugog retka, većina kombiniranih redaka koji se pojavljuju u rezultatima neće imati smisla. Na kraju, upiti koji koriste slučajni unakrsni spojevi može potrajati vrlo dugo vrijeme pokretanje.

Slučajni unakrsni spoj u prikazu dizajna upita

1. na zaokružena polja trebala bi biti spojena jedni s drugima.

Slučajni unakrsni umnožak

1. Imajte na umu velikog broja zapisa.

Rezultat ispravnog upita

1. Imajte na umu da je puno manji broj zapisa.

Vrh stranice

Spajanje tablice na temelju nejednake vrijednosti polja

Spojevi ne morate se temeljiti na jednakosti spojena polja. Spoj mogu se temeljiti na bilo koji operator usporedbe, kao što je veće od (>), manje od (<) ili jednako (<>). Spojevi koji se temelje na jednakosti nazivaju se nejednaki spojevi.

Ako želite kombinirati retke dvaju izvora podataka na temelju vrijednosti polja koje nisu jednake, koristite nejednaki spoj. Obično Nejednaki spojevi temelje se na neki na veće od (>), manje od (<), veće od ili jednako (> =), ili manje od ili jednako (< =) operatori usporedbe. Nejednaki spojevi koji se temelje na nije jednako (<>) operator je moguće vratiti gotovo proizvoljan broj redaka kao unakrsni spoj, a rezultati može biti teško prepoznati.

Kako se koristi nejednaki spoj?

Nejednaki spojevi nisu podržane u prikazu dizajna. Ako želite da ih koristite, to morate učiniti pomoću SQL prikaz. Međutim, možete stvoriti spoj u prikazu dizajna, prijeći u SQL prikaz, pronaći jednako operator usporedbe (=) i promjena ga u operator koji želite koristiti. Kada to učinite, možete samo otvoriti upit u prikazu dizajna ponovno ako ste prvu promjenu operator usporedbe natrag u jednako (=) u SQL prikazu.

Brisanje spoja

Ako Access automatski stvara spoj koji ne želite ili ako slučajno stvorite spoj – na primjer, spoj između dvaju polja s različitim vrstama podataka – možete izbrisati spoja.

  1. U rešetki dizajna upita pritisnite 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

Dodatni sadržaji

Dodavanje zapisa u tablicu pomoću upita s dodavanjem

Spajanje rezultata nekoliko upita odabiranja pomoću upita s unijom

Stvaranje upita na temelju više tablica

Stvaranje, uređivanje i 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.

×