Spajanje tabela i upita

Napomena: Želimo da vam što pre pružimo najnoviji sadržaj pomoći čim na vašem jeziku. Ova stranica je prevedena automatski i može da sadrži gramatičke greške ili netačnosti. Naš cilj je da ovaj sadržaj bude koristan. Možete li nam na dnu ove stranice saopštiti da li su vam informacije bile od koristi? Ovo je članak na engleskom jeziku za brzu 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.

U ovom članku:

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 za šta predstavljaju odnosi na tabele: pokazatelj kako može kombinovati podatke u dva izvora na osnovu vrednosti podataka koje su im zajedničke. Evo ilustraciju spoj u prikazu dizajna, upita sa svojstvima spajanja otvorene 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 u dijalogu prikazuje koje tabele koji je u spoja i polja koja se koristi za priključivanje tabele.

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

Polja iz obe tabele mogu se koristiti i iz svakog prikaza podataka koja se odnosi na zadatak. U unutrašnji spoj, nema drugih podataka je uključen. U spoljni spoj, nepovezanih zapisa iz jedne tabele budu uključeni u rezultate upita.

Vrh stranice

Tipovi spojeva

Postoje četiri osnovna tipa spojeva: unutrašnji spojevi, spoljni spojevi, unakrsni spojevi i uporedni spojevi. Spaja unakrsno i uporedni spojevi su napredne tipove pridruživanja i koriste se retko, ali treba da znate o njima da imate punu razumevanje načina na koji spojevi rad.

Unutrašnji spojevi: samo povezani podaci iz obe tabele u kombinaciji

Unutrašnji spoj je jedan kojim Access uključuje samo podatke iz tabele ako je odgovarajuće podatke u povezanoj tabeli, i obrnuto. Većini slučajeva, koristićete unutrašnji spojevi. Kada kreirate spoja i ne navedete koju vrstu spoj je, Access pretpostavlja da želite unutrašnji spoj. Unutrašnji spojevi su korisni zato što su vam omogućavaju da kombinujete podatke iz dva izvora na osnovu deljene vrednosti – tako da vidite samo podatke kada postoji kompletnu sliku.

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

Spoljni spoj kao unutrašnji spoj, ali dodaje preostale redove iz jedne tabele. Spoljni spojevi su usmereni: levi spoljni spoj uključuje sve zapise iz leva tabela – prve tabele u spoja – i desni spoljni spoj uključuje sve zapise iz Desna tabela – druge tabele u spoja.

Kompletan spoljni spoj: svi podaci, kombinovani gde je izvodljivo

U nekim sistemima spoljni spoj može da sadrži sve redove iz obe tabele sa redova u kombinaciji kada odgovaraju. Ovo se zove kompletno spoljno spajanje i Access ne podržava izričito ih. Međutim, možete da koristite unakrsnog spoja i kriterijuma za isti efekat.

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

Većini slučajeva, unakrsni spoj je posledica dodati dve tabele u upit, a zatim zaboravili da biste se pridružili ih. Pristup tumači da to znači da želite da vidite sve zapise iz jedne tabele u kombinaciji sa svih zapisa iz druge tabele – sve moguće kombinacije zapisa. Jer nema podataka može kombinovati, ova vrsta pridruži se retko daje korisne rezultata. Ali postoji nekoliko slučajeva kada je unakrsni spoj šta vam je potrebno.

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

Uporedni spojevi korišćenje operatora osim znaka jednakosti (=) za poređenje vrednosti i utvrdite da li i kako da kombinujete podatke. Uporedni spojevi izričito nisu podržane, ali možete da koristite unakrsnog spoja i kriterijuma za isti efekat.

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

Ako želite da biste prikazali samo one redove koji imaju vrednosti za spojeno polje koje se podudaraju, koristite unutrašnji spoj. Access automatski kreira unutrašnji spojevi.

Unutrašnja spajanja su najčešći tip spajanja. 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?

Većini slučajeva, ne morate ništa da biste koristili unutrašnji spoj da uradite. Ako tabele koje dodajete u upit već imaju relacije, Access automatski kreira unutrašnji spoj između svakog para povezanih tabela, kada dodajete 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“ za 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 liniju između dva polja da bi prikazao da je spajanje kreirano.

SQL sintaksa za unutrašnji spoj

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

FROM tabela1 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 biti levi spoljni spojevi ili može da bude desni spoljni spojevi. U levi spoljni spoj, upit sadrži sve redove iz prve tabele u odredbi FROM SQL naredbe i samo one redove iz druge tabele kojima polje spoja sadrži vrednosti zajedničke za obe tabele. U desni spoljni spoj upit sadrži sve redove iz druge tabele u odredbi FROM SQL naredbe i samo one redove iz druge tabele kojima polje spoja sadrži vrednosti zajedničke za obe tabele.

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 neke redove na jednoj strani spoljni spoj neće imati odgovarajuće redove iz druge tabele, dobija neka polja u rezultatima upita iz druge tabele biće prazna redove ne odgovara.

Kako da koristim spoljni spoj?

Spoljni spoj kreirate tako što ćete izmeniti postojeće unutrašnji spoj. Ako nema unutrašnji spoj postoji, kreirajte i promenite je u spoljni spoj.

Menjanje unutrašnjeg spoja u spoljni spoj.

  1. U prikazu dizajna upita kliknite dvaput na spoj koji ž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 će prikazati spoj i strelicu koja pokazuje iz izvora podataka kojoj svi redovi će biti uključen sa izvorom podataka kojoj samo one redove koji zadovoljavaju uslov spoja će biti uključena.

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 u kompletnom spoljnom spajanju.

  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 vrednost spojena polja bez vrednosti u prvoj tabeli navedene u odredbi FROM (leva tabela).

    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

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

Nenamerni Dekartov proizvod

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

Ispravljeni rezultat upita

1. imajte na umu da je manji broj zapisa.

Vrh stranice

Spojite tabele na osnovu nejednakih vrednosti polja

Spojevi se ne moraju da se zasniva na jednakosti spojena polja. Je spoj može biti zasnovana na bilo koji operator za poređenje, kao što je veći od (>), "manje od" (<), ili nije jednako (<>). Spojevi koji nisu zasnovani na jednakosti nazivaju se uporedni spojevi.

Ako želite da kombinujete redove iz dva izvora podataka na osnovu vrednosti polja koja nisu jednaka, koristite uporedni spoj. Obično uporedni spojevi su zasnovani na neki veći od (>), manje od (<), veće od ili jednako (> =), ili manje od ili jednako (< =) operatori za poređenje. Uporedni spojevi koji se zasnivaju na nije jednako (<>) operator može da vrati skoro isto onoliko redova kao unakrsni spojevi, a rezultati može biti teško tumačenje.

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 kreirate spoja greškom – na primer, spoj između dva polja koja sadrže različite tipove podataka – možete da izbrišete spoja.

  1. U koordinatnoj mreži za dizajn 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

Takođe pogledajte

Dodavanje zapisa u tabelu pomoću upita za dodavanje

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

Kreiranje upita na osnovu više tabela

Kreiranje, uređivanje ili brisanje relacije

Razvijte Office 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! Izgleda da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×