Spajanje izvora podataka u upitu

Važno : Ovaj članak je mašinski prevesti potražite u članku Odricanje odgovornosti. O referencu pronaći verzija ovaj članak ovde na engleskom jeziku.

Kada uključite više izvora podataka u upit, koristite spojeve da biste ograničili zapise koje želite da vidite na osnovu međusobne relacije izvora podataka. Spojeve možete da koristite i za kombinovanje zapisa iz oba izvora podataka, tako da svaki par zapisa iz izvora postaje jedan zapis u rezultatu upita.

Ovaj članak govori o različitim tipovima spojeva i pokazuje vam kako da ih koristite u upitu.

Napomena : U ovom članku, termin tabele koristi se da izvor podataka. Upit možete koristiti i u spoj, kao što biste tabele.

Pregled

Unutrašnji spoj: prikazuje redove u kojima zajednička vrednost postoji u obe pridružene tabele

Levi ili desni spoljni spoj: prikazuje sve redove iz jedne tabele i odgovarajuće redove iz druge tabele

Kompletan spoljni spoj: prikazuje sve redove iz obe tabele i kombinuje ih ako postoji zajednička vrednost

Unakrsni spoj: sve moguće kombinacije redova

Uporedni spoj: kombinuje zapise na osnovu nejednakih vrednosti polja

Brisanje spoja

Pregled

Spojevi su za upite ono što su relacije za tabele: pokazatelj kako podaci u dva izvora mogu da se kombinuju na osnovu zajedničkih vrednosti podataka. Evo ilustracije spoja u prikazu dizajna upita, sa svojstvima tog spoja otvorenim u dijalogu:

Dijalog „Svojstva spoja“

Ova linija između tabela predstavlja spoja. Kliknite dvaput na spoj da biste otvorili na Svojstva spoja u dijalogu (iscrtane) i pregled ili promena spoja.

Spojevi su ponekad usmereni. Ova oblast dijaloga pokazuje vam šta koja tabela predstavlja u spoju i koja se polja koriste za spajanje tabela.

Ova oblast određuje tip spoja: opcija 1 je unutrašnji spoj, opcija 2 levi spoljni spoj, a opcija 3 desni spoljni spoj.

Mogu se koristiti polja iz obe tabele, a podaci koji pripadaju datom zadatku prikazani su u svakoj od njih. Unutrašnji spoj ne obuhvata druge podatke. U spoljnom spoju u rezultate upita su uključeni i nepovezani zapisi iz jedne tabele.

Neki spojevi se automatski kreiraju

U mnogim slučajevima, nema potrebe da razmišljate o spojevima – ako se tabele koje dodajete u upit već nalaze u relaciji, Access kreira unutrašnji spoj da bi preslikao tu relaciju. U većini slučajeva, to je ono što želite: način da budete sigurni da se podaci uzeti iz dve tabele ispravno kombinuju, tako da su uključeni odgovarajući podaci iz svake tabele, i ništa više od toga. Međutim, u nekim slučajevima želite da spajanje bude sveobuhvatnije.

Tipovi spojeva

Postoje četiri osnovna tipa spojeva: unutrašnji spojevi, spoljni spojevi, unakrsni spojevi i uporedni spojevi. Unakrsni spojevi i uporedni spojevi su napredni tipovi spojeva i retko se koriste, ali treba da ih poznajete kako biste mogli u potpunosti da razumete na koji način spojevi funkcionišu.

Unutrašnji spojevi: samo kombinovani povezani podaci iz obe tabele

Unutrašnji spoj je onaj u kojem Access uključuje podatke iz tabele samo ako postoje odgovarajući podaci u povezanoj tabeli, i obrnuto. Uglavnom ćete koristiti unutrašnje spojeve. Kada kreirate spoj, a ne navedete o kom tipu spajanja je reč, Access pretpostavlja da želite unutrašnji spoj. Unutrašnji spojevi su korisni jer vam omogućavaju da kombinujete podatke iz dva izvora na osnovu zajedničkih vrednosti – tako da vidite podatke samo kada se slika upotpuni.

Spoljni spojevi: svi ispravno kombinovani povezani podaci, kao i svi preostali zapisi iz jedne tabele

Spoljni spoj je sličan unutrašnjem spoju, ali dodaje preostale redove iz jedne od tabela. Spoljni spojevi su usmereni: levi spoljno spoj uključuje sve zapise iz leve tabele, prve tabele u spoju, a desni spoljni spoj uključuje sve zapise iz desne tabele, druge tabele u spoju.

Kompletan spoljni spoj: svi podaci, kombinovani gde je izvodljivo

U nekim sistemima, spoljni spoj može da uključi sve redove iz obe tabele, s tim da se redovi kombinuju kada su odgovarajući. To se naziva kompletan spoljni spoj, a Access ga ne podržava izričito. Međutim, možete koristiti unakrsni spoj i kriterijume da biste postigli isti efekat.

Unakrsni spojevi: svi podaci, kombinovani na sve moguće načine

U većini slučajeva, unakrsni spojevi je nuspojava dodavanja dve tabele u upit koje ste zatim zaboravili da spojite. Access smatra da to znači kako želite da vidite sve zapise iz jedne tabele u kombinaciji sa svim zapisima iz druge tabele – sve moguće kombinacije zapisa. Pošto podaci ne mogu da se kombinuju, ova vrsta spajanja retko daje korisne rezultate. Međutim, postoji nekoliko slučajeva kada je unakrsni spoj upravo ono što vam je potrebno.

Uporedni spojevi: predstavljaju što i običan spoj, ali koriste različite parametre poređenja za kombinovanje redova

Uporedni spojevi za poređenje vrednosti i utvrđivanje da li i kako treba kombinovati podatke koriste operator različit od znaka jednakosti (=) . Uporedni spojevi nisu izričito podržani, ali možete koristiti unakrsni spoj i kriterijume da biste postigli isti efekat.

Vrh stranice

Unutrašnji spoj: prikazuje redove u kojima zajednička vrednost postoji u obe pridružene tabele

Ako želite da pokažete samo one redove koji imaju podudarne vrednosti u povezanom polju, koristite unutrašnji spoj. Access automatski kreira unutrašnji spoj.

Unutrašnji spojevi su najčešći tip spajanja. Oni govore upitu da redovi iz jedne od pridruženih tabela odgovaraju redovima u drugoj tabeli, na osnovu zajedničkih vrednosti u povezanim poljima. Kada se pokrene upit sa unutrašnjim spojem, u operacije upita biće uključeni samo oni redovi u kojima zajednička vrednost postoji u obe pridružene tabele.

Kako da koristim unutrašnji spoj?

Da biste kreirali unutrašnji spoj, prevucite polje iz jednog izvora podataka u polje drugog izvora podataka u koordinatnoj mreži dizajna upita. Access spaja dve tabele po tim poljima i prikazuje liniju između njih.

Automatski unutrašnji spojevi

Uglavnom nema potrebe da bilo šta radite da biste koristili unutrašnji spoj. Ako tabele koje dodajete u upit već imaju relacije, Access automatski kreira unutrašnji spoj između svih parova povezanih tabela kada dodate tabele. Ako je nametnut referencijalni integritet, Access takođe prikazuje broj „1“ iznad linije spajanja da bi pokazao koja se tabela nalazi na strani „jedan“ odnos jedan-prema-više i simbol za beskonačno () da bi pokazao koja se tabela nalazi na strani „više“.

Čak i ako niste kreirali relacije, Access automatski kreira unutrašnje spojeve ako u upit dodate dve tabele, a svaka od njih sadrži polje sa istim imenom i istim ili kompatibilnim tipom podataka i ako je jedno od tih polja primarni ključ u svojoj tabeli. Simboli „jedan“ i „više“ nisu prikazani u ovom slučaju, jer referencijalni integritet nije nametnut.

Ako u upit dodate upite, a niste kreirali relacije između tih upita, Access ne kreira automatski unutrašnji spoj između tih upita ili između upita i tabela. Uopšteno govoreći, treba da ih kreirate sami (prevlačenjem polja iz jednog izvora podataka na polje u drugom izvoru podataka). Ako to ne učinite, možda ćete dobiti unakrsni spoj – rezultate koji će vas zbuniti ako niste želeli baš to.

SQL sintaksa za unutrašnji spoj

Unutrašnji spojevi su navedeni u SQL kodu u odredbi FROM, kao što je prikazano ispod:

FROM tabela 1 INNER JOIN tabela 2 ON tabela 1.polje 1 operator_poređenja tabela 2.polje 2

Operacija unutrašnjeg spoja sastoji se od tri dela:

Deo

Opis

tabela 1, tabela 2

Imena tabela iz kojih se kombinuju zapisi.

polje 1, polje 2

Imena polja koja se spajaju. Ako nisu numerička, polja moraju pripadati istom tip podatka i sadržati istu vrstu podataka, ali ne moraju da imaju isto ime.

operator_poređenja

Bilo koji relacioni operator poređenja: „=,“ „<,“ „>,“ „<=,“ „>=,“ ili „<>.“

Više informacija o sintaksi unutrašnjeg spoja potražite u odeljku Operacija unutrašnjeg spajanja.

Vrh stranice

Levi ili desni spoljni spoj: prikazuje sve redove iz jedne tabele i odgovarajuće redove iz druge tabele

Spoljni spojevi govore upitu da, iako neki redovi na obe strane spoja u potpunosti odgovaraju, upit treba da uključi sve redove iz jedne tabele, kao i one redove iz druge tabele koji dele zajedničku vrednost sa obe strane spoja (kombinujući podatke kada obe tabele sadrže red).

Spoljni spojevi mogu da budu levi spoljni spoj ili desni spoljni spoj. U levom spoljnom spoju, upit uključuje sve redove iz prve tabele u odredbi FROM SQL izraza i samo one redove iz druge tabele u kojima spojeno polje sadrži vrednosti zajedničke obema tabelama. U desnom spoljnom spoju, upit uključuje sve redove iz druge tabele u odredbi FROM SQL izraza i samo one redove iz prve tabele u kojima spojeno polje sadrži vrednosti zajedničke obema tabelama.

Napomena : Lako možete da odredite koja tabela je leva tabela ili desna tabela u datom spoj tako što ćete kliknuti dvaput na spoj, a zatim pogledati na u dijalogu Svojstva spoja . Ili, u SQL prikazu, možete da ispitate odredbe FROM detalje pridruži se.

Pošto neki redovi sa jedne strane spoljnog spoja neće imati odgovarajuće redove iz druge tabele, neka polja vraćena u rezultatu upita iz te druge tabele biće prazna kada redovi ne odgovaraju.

Kako da koristim spoljni spoj?

Spoljni spoj kreirate tako što promenite postojeći unutrašnji spoj. Ako nemate unutrašnji spoj, kreirajte ga, a zatim ga promenite u spoljni spoj.

Menjanje unutrašnjeg spoja u spoljni spoj.

  1. U prikazu dizajna upita kliknite dvaput na spoj koje želite da promenite.

    Na pojavljuje se dijalog Svojstva spoja .

  2. U polju dijalog Svojstva spoja , beleške na izbore navedene pored opcije 2 i opcije 3.

  3. Izaberite opciju koju želite da koristite, a zatim kliknite na dugme u redu.

  4. Access prikazuje spoj i pokazuje strelicu koja je okrenuta suprotno od izvora podataka u koji će biti uključeni svi redovi a prema izvoru podataka u koji će biti uključeni samo oni redovi koji zadovoljavaju uslove spajanja.

Nejasni spoljni spojevi

Ako kreirate upit koji sadrži levi spoj i unutrašnji spoj, Access možda neće moći da odredi koju operaciju spajanja treba prvo da izvrši. Pošto su rezultati različiti, u zavisnosti od toga da li se prvo izvršava levo spajanje ili unutrašnje spajanje, Access prikazuje poruku o grešci zbog nejasnih spoljnih spojeva.

Da biste ispravili ovu grešku, promenite upit tako da bude jasno koje spajanje treba prvo da se izvrši.

Spoljni spojevi i mogućnost ažuriranja upita

U Access aplikaciji, polje u upitu za više tabela može da se ažurira samo ako su ispunjeni sledeći uslovi:

  • Polje je iz tabele „najviše-prema-više“ upita – tabele koja traži podatke u drugoj tabeli.

  • Rezultat upita uključuje primarni ključ iz tabele „najviše-prema-više“.

  • Ako je tabela „najviše-prema-više“ deo spoljnog spoja, nalazi se na unutrašnjoj strani spoja: leva tabela levog spoljnog spoja ili desna tabela desnog spoljnog spoja.

Ako neki od uslova nije ispunjen, polje će biti samo za čitanje, bilo u listu sa podacima upita ili u prikazu zasnovanom na upitu.

SQL sintaksa za spoljni spoj

Spoljni spojevi se zadaju u SQL kodu odredbe FROM, kao što je prikazano ispod:

FROM tabela 1 [ LEFT | RIGHT ] JOIN tabela 2
ON tabela 1.polje 1 operator_poređenja tabela 2.polje 2

Operacije levog i desnog spajanja imaju sledeće delove:

Deo

Opis

tabela 1, tabela 2

Imena tabela iz kojih se kombinuju zapisi.

polje 1, polje 2

Imena spojenih polja. Polja moraju da pripadaju istom tip podatka i da sadrže istu vrstu podataka, ali ne moraju imati isto ime.

operator_poređenja

Bilo koji relacioni operator poređenja: „=,“ „<,“ „>,“ „<=,“ „>=,“ ili „<>.“

Više informacija o sintaksi spoljnog spoja potražite u članku Operacije levog spajanja i desnog spajanja.

Vrh stranice

Kompletan spoljni spoj: prikazuje sve redove iz obe tabele i kombinuje ih ako postoji zajednička vrednost

Kada želite da pokažete sve redove iz dve tabele i da ih spojite na osnovu zajedničkih vrednosti, koristite kompletan spoljni spoj. Access ne podržava izričito kompletne spoljne spojeve, ali isti rezultat možete postići korišćenjem unakrsnog spoja i kriterijuma.

  1. Kreirajte upit i dodajte dve tabele. Ako Access kreira neki spoj, izbrišite ga.

  2. Dodajte polja koja želite za rezultat upita.

  3. Dodajte spojena polja iz obe tabele i opozovite izbor u polju za potvrdu Prikaži za njih.

  4. U u koordinatnoj mreži dizajna upita, ispod spojenog polja iz prve tabele, u red Kriterijumi unesite spojeno polje iz druge tabele. Ako spojena polja imaju isto ime polja, obavezno navedite ime tabele kada budete upućivali na njih.

  5. U redu Ili, ispod kriterijuma koji ste upravo uneli, otkucajte Is Null.

  6. U sledeći red Ili (neposredno ispod prvog reda), pod spojenim poljem iz druge tabele, otkucajte Is Null.

Upit vraća kombinovani skup:

  • Redova u kojima se vrednosti spojenih polja podudaraju, a podaci su kombinovani u skladu s tim (efektivno, unutrašnji spoj)

  • Redova u kojima nema vrednosti za spojeno polje iz prve tabele (efektivno, spoljni deo levog spoljnog spoja)

  • Redova u kojima nema vrednosti za spojeno polje iz druge tabele (efektivno, spoljni deo desnog spoljnog spoja)

Vrh stranice

Unakrsni spoj: sve moguće kombinacije redova

Svaki put kada uključite tabele u upit, ali ih ne spojite, dolazi do unakrsnog spajanja. Access kombinuje sve redove iz jedne tabele sa svim redovima iz druge tabele, a rezultat toga je ono što se naziva unakrsni ili Dekartov proizvod. Obično to nije ono što želite, ali unakrsni spojevi mogu biti korisni za istraživanje hipotetičkih vrednosti.

Zašto bi trebalo da koristim unakrsni spoj?

Ako želite da ispitate sve moguće kombinacije redova između dve tabele ili upita, koristite unakrsni spoj. Na primer, pretpostavimo ste tokom godine veoma uspešno poslovali i razmišljate o tome da kupcima odobrite popust. Možete da napravite upit koji sabira kupovine svih kupaca, kreirate malu tabelu koja ima nekoliko mogućih procenata popusta i kombinujete ih u drugi upit koji izvršava unakrsno spajanje. Dekartov proizvod prikazuje skup hipotetičkih popusta za svakog kupca – upravo ono što želite.

Kako da koristim unakrsni spoj?

Dodajte dve tabele u upit, nemojte kreirati spoj među njima i uključite polja iz obe tabele u rezultat upita. Access kombinuje sve redove iz svih tabela ili upita koji nisu izričito spojeni sa nekom drugom tabelom ili upitom sa svakim drugim redom u rezultatima upita. Razmotrite primer popusta iz prethodnog pasusa. Pretpostavimo da imate 91 kupca i da želite da razmotrite pet mogućih procenata popusta. Unakrsni spoj daje 455 redova (proizvod brojeva 91 i 5).

Ako su tabele koje dodajete povezane, Access automatski kreira unutrašnji spoj. Ovaj automatski spoj možete da izbrišete ukoliko je potrebno da biste napravili unakrsni spoj.

Kao što možete da pretpostavite, nenamerni unakrsni spoj može da kreira veoma veliki broj redova u rezultatima upita. Osim toga, ovi rezultati su obično bez značaja, jer se redovi ne kombinuju na osnovu zajedničkih podataka i kombinacije ničemu ne odgovaraju.

Vrh stranice

Uporedni spoj: kombinuje zapise na osnovu nejednakih vrednosti polja

Spojevi ne moraju da se zasnivaju na jednakosti spojenih polja. Spoj se može zasnivati na bilo kom operatoru za poređenje, kao što je „veće od" (>), „manje od" (<) ili „nije jednako" (<>). Spojevi koji se ne zasnivaju na jednakosti nazivaju se uporedni spojevi.

Koristite uporedne spojeve ako želite da kombinujete redove iz dva izvora podataka na osnovu vrednosti polja koje nisu jednake. Uporedni spojevi obično su zasnovani na operatorima za poređenje „veće od" (>), „manje od" (<), „veće od ili jednako" (>=) ili „manje od ili jednako" (<=). Uporedni spojevi koja se zasnivaju na operatoru „nije jednako" (<>) mogu vratiti skoro isto onoliko redova koliko i unakrsni spojevi, a rezultati se teško mogu protumačiti.

Kako da koristim uporedni spoj?

Access ne podržava izričito uporedne spojeve u prikazu dizajna, ali isti rezultat možete postići korišćenjem unakrsnog spoja i kriterijuma:

  1. Kreirajte upit i dodajte dve tabele za uporedni spoj. Ako Access automatski kreira neki spoj, izbrišite ga.

  2. Dodajte željena polja za rezultat.

  3. Dodajte spojena polja iz prve tabele i opozovite izbor u polju za potvrdu u redu Prikaži.

  4. U redu Kriterijumi otkucajte operater nejednakosti koji želite da koristite i iza njega spojeno polje iz druge tabele.

Upit vraća redove sa kombinovanim podacima iz dve tabele na osnovu nejednakosti koju ste naveli.

Vrh stranice

Brisanje spoja

Ako Access automatski kreira spoj koji ne želite ili ako ga vi greškom kreirate,  na primer spoj između dva polja koja sadrže podatke različitog tipa,  možete ga izbrisati.

  1. U koordinatnoj mreži dizajna upita kliknite na spoj koji želite da uklonite.

  2. Pritisnite taster Brisanje.

– ili –

  • U koordinatnoj mreži za dizajn upita kliknite desnim tasterom miša na spoj koji želite da uklonite, a zatim kliknite na dugme Brisanje.

vrh stranice

Napomena : Odricanje odgovornosti mašinskog prevođenja: ovaj članak je preveden sistem računara bez ljudski interventne. Microsoft nudi ove mašinskog prevoda da pomogne koja nije na engleskom govornih korisnicima da uživate u sadržaju za Microsoft proizvode, usluge i tehnologijama. U članku bio mašinskog prevesti, mogu da sadrže greške u rečnik, sintaksa ili gramatiku.

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.

×