Spajanje tabela i upita

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

Kada uključite više izvora podataka u Access upitu, koristite spojevi da biste ograničili zapise koje želite da vidite, na osnovu kako izvori podataka su međusobno. Možete takođe da koristite spojeve Kombinuje zapise iz obe izvora podataka, tako da svaki par zapisa izvore postaje jedan zapis u rezultatima upita.

Ovaj članak govori o različitim tipovima spojeva i pokazuje kako da ih koristite u upitu. Podrazumevano spoja se automatski kreira ako već postoji relacije između dve podataka izvora koje koristite u upitu. Je spoj kreira ako postoje polja koja jasno međusobno. Možete da izbrišete automatski kreirano spoja. Ovaj članak pruža osnovne informacije o relacijama između tabela, uključujući i kako da ga kreirate.

Napomena : Možete da se pridružite upite na isti način na koji spajanje tabela i se možete pridružiti oba.

Ovaj članak sadrži

Pregled

Tipovi spojeva

Prikazuje redove u kojima zajednička vrednost postoji u obe pridružene tabele

Prikazuje sve redove iz jedne tabele i odgovarajuće redove iz druge tabele

Prikazuje sve redove iz obe tabele i pridruživanje njima kojima zajednička vrednost postoji

Unakrsni spojevi

Spojite tabele na osnovu nejednakih vrednosti polja

Brisanje spoja

Pregled

Baza podataka je kolekcija tabele sa podacima koje logičke relacije. Koristite veze za povezivanje tabele po poljima koja su im zajedničke. Tabele mogu biti deo bilo koji broj veza, ali svaki odnos uvek ima tačno dve tabele. U upitu, relacije predstavljena je spoja.

Kada dodajete tabele u upit, Pristup kreira spojevi koji su zasnovani na veze koje su definisane između tabela. Ručno kreirate spojeva u upitima, čak i ako ne predstavljaju relacije koje su već definisane. Ako koristite druge upite (umesto ili pored tabele) kao izvore podataka za upit, možete kreirati spojeve između izvornih upita, kao i između ovih upita i sve tabele koje koristite kao izvore podataka.

Spojevi se ponašaju slično kao kriterijuma upita u toj pravila koja podaci moraju da se podudaraju će biti uključeni u operacijama upita. Za razliku od kriterijuma, spojevi takođe određuju da će svaki par redova koji zadovoljavaju uslove spoja kombinovati u skupu zapisa da biste formirali jedan red.

Postoje četiri osnovna tipa spojeva: Unutrašnji spojevi, spoljni spojevi, unakrsni spojevi i Uporedni spojevi. Ovaj članak istražuje svaki tip spoja koji možete da koristite, zašto koristite svaki tip i kako da kreirate spajanja.

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.

Vrh stranice

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.

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 spoja. Oni govore upitu da redovi iz jedne od spojenih tabela odgovaraju redovima u drugoj tabeli, na osnovu podataka u spojenim poljima. Kada pokrenete upit sa unutrašnji spoj samo one redove u kojima zajednička vrednost postoji u obe pridružene tabele će biti uključeni u operacijama upita.

Kako da koristim unutrašnji spoj?

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šnji spojevi Ako dodajete dve tabele u upit i te tabele imaju polje sa istim ili kompatibilan tip podataka i od spojena polja je primarni ključ. Simboli „jedan” i „više” ne prikazuju se u ovom slučaju, jer referencijalni integritet ne nameće.

Ako dodate upite u upit, a niste kreirali relacije između ovih upita, Access neće automatski kreirati Unutrašnji spojevi između ovih upita ili između upita i tabela. Obično, trebalo bi da ih sami kreirate. Unutrašnji spoj kreirate tako što ćete prevući polja iz jednog izvora podataka u polje na drugi izvor podataka. Access prikazuje linije između dva polja da biste prikazali spoja je kreirano.

SQL sintaksa za unutrašnji spoj

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

OD 1 INNER JOIN tabela2 ON tabela1. polje1 poređenje tabela2. polje2

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.

Poređenje

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

Više informacija o sintaksi unutrašnjeg spoja potražite u temi operacija INNER JOIN.

Vrh stranice

Prikazuje sve redove iz jedne tabele i odgovarajuće redove iz druge tabele

Spoljni spojevi govore upitu da iako neke redove sa obe strane spoja u potpunosti podudaraju, upit treba da sadrži sve redove iz jedne tabele i one redove iz druge tabele koja dele zajedničke vrednosti sa obe strane spoja.

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 u dijalogu Svojstva spoja . Možete takođe da se prebacite na SQL prikaz i proučite odredbe FROM.

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.

    Pojaviće se dijalog Svojstva spoja.

  2. U dijalogu Svojstva spoja obratite pažnju na izbore navedene pored opcije 2 i opcije 3.

  3. Izaberite opciju koju želite da koristite i 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 LEFT JOIN i UNUTRAŠNJI spoj, Access možda nećete moći da biste utvrdili koja se pridružite operacija prvo da se izvrši. Pošto rezultati se razlikuju u zavisnosti od toga da li levi spoj ili unutrašnji spoj vrši se prvi put, Access prikazuje poruku o grešci:

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

SQL sintaksa za spoljni spoj

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

IZ tabela1 [levo | RIGHT] JOIN tabela2
na table1.field1 poređenje tabela2.polje2

Operacije LEFT JOIN i RIGHT JOIN 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.

Poređenje

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

Više informacija o sintaksi spoljnog spoja potražite u temi LEFT JOIN, RIGHT JOIN operacije.

Vrh stranice

Prikazuje sve redove iz obe tabele i pridruživanje njima kojima zajednička vrednost postoji

Kada želite da prikažete sve redove iz dve tabele i pridruživanje njima na osnovu zajedničke vrednosti, koristite kompletno spoljno spajanje. Access ne podržava izričito punu spoljni spojevi, ali možete postići na istom pomoću upita za združivanje. Sledeća procedura objašnjava kako da to uradite, ali ako želite više informacija o upitima za združivanje, pogledajte odeljak Takođe pogledajte .

Korišćenje upita za združivanje za izvršavanje kompletnog spoljnog spajanja:

  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 tekst 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 koraku 3.

  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.

Unakrsni spojevi

Unakrsni spojevi se razlikuju od unutrašnjih i spoljnih spojeva u toj one nisu izričito predstavljeni u Pristup. U unakrsni spoj, svaki red iz jedne tabele se kombinuje sa svakim redom iz druge tabele, kako se zove Dekartov proizvod ili Dekartov proizvod. Svaki put kada pokrenete upit koji sadrži tabele koje niste izričito pridruženi, Dekartov proizvod je rezultat. Unakrsni spojevi su obično nenamerni, ali postoje slučajevi kada mogu biti korisne.

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 preduzeće je imala spektakularna godina i koje su razmišljate o klijentima. Možete da napravite upit koji sabira nabavke svakog kupca, kreirate malu tabelu koja sadrži nekoliko mogućih procenata popusta i kombinujte ih u drugi upit koji izvršava unakrsni spoj. Na kraju upit koji prikazuje skup hipotetičke popust za svakog klijenta.

Kako da koristim unakrsni spoj?

Unakrsni spoj nastaje svaki put kada uključite tabela ili upita u upit i ne kreirate najmanje jednu eksplicitno spoj za svaku tabelu ili upit. Pristup kombinuje svaki red iz svaku tabelu ili upit koji nije eksplicitno pridružen tabelu ili upit da biste svaki drugi red u rezultatima. Razmislite o popusta scenario iz prethodnog pasusa. Pretpostavimo da imate 91 kupca i da želite da pogledate pet mogućih procenata popusta. Unakrsni spoj proizvodi 455 redova (proizvod 91 i 5).

Možda zamisliti kako nenamerni unakrsni spojevi možete kreirati veoma veliki broj redova u rezultatima upita. Pored toga, ovi rezultati su obično bez značaja, jer ako ne nameravate da kombinujete svaki red sa svaki drugi red, većina kombinovanih redova koji se pojavljuju u rezultatima neće imati smisla. Na kraju, upite koji koriste nenamerni unakrsni spojevi može biti potrebno mnogo vremena da biste pokrenuli.

Nenamerni unakrsni spoj u prikazu dizajna upita
Nenamerni unakrsni spoj u prikazu dizajna upita.

1. zaokružena polja treba da budu spojena jedni drugima.

Nenamerni Dekartov proizvod
Dekartov proizvod dobijen nenamerni unakrsni spoj prikazanog iznad.

1. Obratite pažnju na veoma veliki broj zapisa.

Ispravljeni rezultat upita
Rezultati posle kreiranja ispravnog spoja.

1. imajte na umu da je manji broj zapisa.

Vrh stranice

Spojite tabele 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?

Uporedni spojevi nisu podržane u prikazu dizajna. Ako želite da ih koristite, morate da uradite to pomoću SQL prikaz. Međutim, možete kreiranje spoj u prikazu dizajna, prebacite se na SQL prikaz, pronaći na jednako (=) operator za poređenje i promenite da operator koji želite da koristite. Kada to uradite, možete samo otvorite upit u prikazu dizajna ponovo ako vam prvu promenu operator za poređenje vratite da biste jednako (=) u SQL prikazu.

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 kombinaciju tastera Brisanje.

– ili –

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

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.

Takođe pogledajte

Dodavanje zapisa u tabelu pomoću upita za dodavanje

Kombinovanje rezultata nekoliko upite za izdvajanje pomoću upita za združivanje

Kreiranje upita na osnovu više tabela

Kreiranje, uređivanje ili brisanje relacije

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.

×