Spajanje tabela i upita

Kada u Access upitu uključite više izvora podataka, koristite veze da biste ograničili zapise koje želite da vidite, na osnovu toga kako su podaci povezani međusobno. Možete i da koristite veze da biste kombinovali zapise iz oba izvora podataka, tako da svaki par zapisa iz izvora postaje jedan zapis u rezultatima upita.

Ovaj članak govori o različitim tipovima spajanja i prikazuje kako da ih koristite u upitu. Pridruživanje se podrazumevano automatski kreira ako već postoji relacija između dva izvora podataka koja koristite u upitu. Pridruživanje se takođe kreira ako postoje polja koja se očigledno podudaraju. Možete da izbrišete automatski kreirano spajanje. Ovaj članak pruža osnovne informacije o relacijama između tabela, uključujući kako da ga kreirate.

Napomena: Upite možete da pridružite na isti način na koji ste pridružili tabele i možete da se pridružite obema listama.

U ovom članku:

Pregled

Tipovi spajanja

Prikaži redove u kojima zajednička vrednost postoji u obe spojene tabele

Prikaži sve redove iz jedne tabele i odgovarajuće redove iz druge tabele

Prikažite sve redove iz obe tabele i pridružite im se gde postoji uobičajena vrednost

Unakrsni spojevi

Pridružite tabele na osnovu nejednakosti vrednosti polja

Brisanje spajanja

Pregled

Baza podataka je zbirka tabela podataka koje imaju logičke relacije. Relacije ćete koristiti za povezivanje tabela po poljima koja su im zajednička. Tabela može da bude deo bilo kog broja relacija, ali svaka relacija uvek ima tačno dve tabele. U upitu, relacija predstavlja spoj.

Kada dodate tabele u upit, Pristup kreira spojeve zasnovane na relacijama koje su definisane između tabela. Možete ručno da kreirate spojeve u upitima, čak i ako ne predstavljaju relacije koji su već definisani. Ako koristite druge upite (umesto ili pored tabela) kao izvore podataka za upit, možete da kreirate spojeve između izvornih upita i takođe između tih upita i bilo koje tabele koje koristite kao izvore podataka.

Veze se ponašaju slično prema kriterijumima upita u kojima uspostavljaju pravila za koja podaci moraju da se podudaraju da bi se uključile u operacije upita. Za razliku od kriterijuma, pridruživanje takođe precizira da će svaki par redova koji zadovoljavaju uslove spajanja biti kombinovani u skupu zapisa da bi formirao jedan red.

Postoje četiri osnovna tipa spajanja: unutrašnji spojevi, spoljni spojevi, unakrsni spojevi i uporedni spojevi. Ovaj članak istražuje svaki tip pridruživanja koji možete da koristite, zašto koristite svaki tip i kako da kreirate spojeve.

Veze se izvršavaju da bi se upitala koje su relacije tabele: indikacija o tome kako se podaci iz dva izvora mogu kombinovani na osnovu vrednosti podataka koje imaju zajednički. Evo ilustracije pridruživanja u prikazu dizajna upita, sa otvorenim svojstvima pridruživanja u dijalogu:

Dijalog „Svojstva spoja“

Ovaj red između tabela predstavlja pridruživanje. Kliknite dvaput na spoj da biste otvorili dijalog Svojstva spoja (prikazano) i Redigujte ili promenite spoj.

Spajanja su ponekad Usmeravajuжe. Ova oblast dijaloga prikazuje koja tabela se nalazi u okviru pridruživanja i koja polja se koriste za pridruživanje tabelama.

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

Polja iz obe tabele mogu da se koriste, a podaci koji se odnose na dat zadatak prikazuju se iz svakog. U unutrašnjem spoju nije uključeno nijedan drugi podatak. U spoljnom udruženom, nepovezani zapisi iz jedne tabele uključeni su u rezultate upita.

Vrh stranice

Tipovi spajanja

Postoje četiri osnovna tipa spajanja: unutrašnji spojevi, spoljni spojevi, unakrsni spojevi i uporedni spojevi. Unakrsni spojevi i uporedni spojevi su napredni tipovi spoja i retko se koriste, ali trebalo bi da znate o njima da biste imali kompletno razumevanje načina na koji rade spojevi.

Unutrašnji spojevi: samo srodni podaci iz obe tabele

Unutrašnji spoj je onaj u kojem Access uključuje samo podatke iz tabele ako postoje odgovarajući podaci u povezanoj tabeli i obratno. Najčešće ćete koristiti unutrašnje spojeve. Kada kreirate spoj i ne navedete koja je to vrsta pridruživanja, Access pretpostavlja da želite unutrašnji spoj. Unutrašnji spojevi su korisni zato što vam daju da kombinujete podatke iz dva izvora na osnovu deljenih vrednosti – tako da vidite samo podatke kada postoji kompletna slika.

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

Spoljni spoj je kao unutrašnji spoj, ali dodaje preostale redove iz jedne od tabela. Spoljni spojevi su usmereni: levi spoljni spoj uključuje sve zapise sa leve tabele – prva tabela u okviru pridruživanja – a desni spoljni spoj uključuje sve zapise sa desne tabele – druge tabele u vezi.

Puni spoljni spojevi: svi podaci, kombinovani gde je izvodljivo

U nekom sistemu spoljni spoj može da sadrži sve redove iz obe tabele, sa redovima kombinovane kada se oni podudaraju. To se zove pun spoljni spoj i Access ih eksplicitno ne podržava. Međutim, možete da koristite unakrsni spoj i kriterijume da biste ostvarili isti efekat.

Unakrsna spojeva: svi podaci, kombinovani na svaki mogući način

Unakrsna spoj je najčešće efekat dodavanja dve tabele u upit, a zatim zaboraviti da im se pridružite. Access to tumači tako da znači da želite da vidite sve zapise iz jedne tabele kombinovane sa svakim zapisom iz druge tabele – svaka moguća kombinacija zapisa. Pošto se ne mogu kombinuje nijedan podatak, ova vrsta pridruživanja retko daje korisne rezultate. Ali postoji nekoliko slučajeva kada je unakrsni spoj upravo ono što vam je potrebno.

Uporedni spojevi: kao običan spoj, ali koristeći drugo poređenje za kombinovanje redova

Jednakim spojevima koristite operator koji nije znak jednakosti (=) da biste uporedili vrednosti i utvrdili da li i kako da kombinuje podatke. Uporedni spojevi nisu izričito podržani, ali možete da koristite unakrsni spoj i kriterijume da biste ostvarili isti efekat.

Prikaži redove u kojima zajednička vrednost postoji u obe spojene tabele

Ako želite da prikažete samo one redove koji imaju odgovarajuće vrednosti u objedinjenim poljima, koristite INNER JOIN. Access automatski kreira unutrašnje spojeve.

Unutrašnja spajanja su najčešći tip spajanja. Oni govore upitu da redovi iz neke od pridružene tabele odgovaraju redovima u drugoj tabeli, na osnovu podataka u spojenim poljima. Kada se pokrene upit sa unutrašnjim spojem, samo oni redovi gde zajednička vrednost postoji u obe spojene tabele će biti uključene u operacije upita.

Kako se koristi unutrašnji spoj?

U većini slučajeva, ne morate ništa da uradite da biste koristili INNER JOIN. Ako tabele koje dodate u upit već imaju relacije, Access automatski kreira unutrašnji spoj između svakog nekoliko srodnih 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“ 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šnje spojeve ako u upit dodate dve tabele, a svaka od njih ima polje sa istim ili kompatibilnim tipom podataka, a jedno od polja spajanja je primarni ključ. Simboli "jedan" i "veliki broj" se ne prikazuju u ovom slučaju zato što se referencijalni integritet ne sprovodi.

Ako dodajete upite u upit i ne kreirate relacije između tih upita, Access ne kreira unutrašnje spojeve između tih upita ili između upita i tabela. Generalno, trebalo bi da ih sami kreirate. Unutrašnji spoj kreirate prevlačenjem polja iz jednog izvora podataka u polje u drugom izvoru podataka. Access prikazuje liniju između dva polja da bi prikazao da je spajanje kreirano.

SQL sintaksa za unutrašnji spoj

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

FROM tabela1 INNER JOIN tabela2 ON tabela1.Polje1 uporedite 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.

рujeљ

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

Više informacija o unutrašnjoj sintaksi potražite u članku operacija INNER JOIN.

Vrh stranice

Prikaži sve redove iz jedne tabele i odgovarajuće redove iz druge tabele

Spoljni spojevi govore upitu da, iako se neki redovi sa obe strane priključka tačno podudaraju, upit bi trebalo da uključi sve redove iz jedne tabele i te redove iz druge tabele koji dele zajedničku vrednost sa obe strane pridruživanja.

Spoljni spojevi mogu biti levi spoljni spojevi ili desni spoljni spojevi. U levom spoljnjem sastanku, upit uključuje sve redove iz prve tabele u odredbi FROM SQL izraza i samo one redove iz druge tabele u kojima polje pridruživanja sadrži vrednosti koje su uobičajene obema tabelama. U desnom spoljnjem sastanku, upit uključuje sve redove iz druge tabele u odredbi FROM SQL izraza i samo one redove iz druge tabele u kojima polje pridruživanja sadrži vrednosti koje su zajedničke za obe tabele.

Napomena: Možete lako da vidite koja je tabela leva ili desna tabela u datom udruženu tako što ćete kliknuti dvaput na spoj, a zatim u dijalogu Svojstva pridruživanja . Možete i da se prebacite na SQL prikaz, a zatim da pregledate odredbu FROM.

Pošto neki od redova na jednoj strani spoljnog reda neće imati odgovarajuće redove iz druge tabele, neka od polja vraćena u rezultatima upita iz te druge tabele biće prazna kada se redovi ne podudaraju.

Kako se koristi spoljni spoj?

Kreirate spoljni spoj promenom postojećeg unutrašnjeg spoja. Ako unutrašnja veza ne postoji, kreirajte je, a zatim je promenite u spoljni spoj.

Promena 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 pridruživanja Imajte na umu da su izbori navedeni pored opcije 2 i opcija 3.

  3. Izaberite opciju koju želite da koristite i kliknite na dugme U redu.

  4. Access prikazuje pridruživanje i prikazuje strelicu koja upućuje iz izvora podataka gde će svi redovi biti uključeni u izvor podataka gde će biti obuhvaćene samo one redove koji zadovoljavaju uslov spoja.

Dvosmisleni spoljni spojevi

Ako kreirate upit koji sadrži levi spoj i unutrašnji spoj, Access možda neće moći da utvrdi koja operacija pridruživanja treba da se izvrši. Budući da su rezultati različiti u zavisnosti od toga da li se prvi put izvršava unutrašnji spoj, Access prikazuje poruku o grešci:

Da biste ispravili ovu grešku, morate da izmenite upit tako da bude jasan koji će se pridružiti početku.

SQL sintaksa za spoljni spoj

Spoljni spojevi navedeni su u sistemu SQL u odredbi FROM, kao što je prikazano ispod:

OD " |" [Left | DESNO] pridružite se Tabela2
na usluzi , Polje1 uporedite 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.

рujeљ

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

Više informacija o sintaksi spoljnog spoja potražite u temi levo pridruživanje, desna pridruži se operacijama.

Vrh stranice

Prikažite sve redove iz obe tabele i pridružite im se gde postoji uobičajena vrednost

Kada želite da prikažete sve redove iz dve tabele i pridružite im se na osnovu uobičajenih vrednosti, koristite pun spoljni spoj. Access eksplicitno ne podržava pune spoljne spojeve, ali možete da postignete isti efekat pomoću upita za Uniju. Sledeća procedura objašnjava kako se to radi, ali ako želite više informacija o upitima za Uniju, pogledajte odeljak Takođe pogledajte .

Da biste koristili upit za združivanje za izvršavanje punog spoljnog spoja:

  1. Kreirajte upit koji ima levi spoljni spoj na polju koje želite da koristite za pun spoljni spoj.

  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 odredbi FROM, a zatim pritisnite taster ENTER.

  5. Otkucajte tekst UNION, a zatim pritisnite taster ENTER.

    Napomena: Nemojte da koristite sve ključne reči kada koristite upit za združivanje za izvršavanje punog spoljnog spoja.

  6. Pritisnite kombinaciju tastera CTRL + V da biste nalepili SQL kôd koji ste kopirali u 3.

  7. U kodu koji ste nalepili, promenite levi spoj sa desnim pridruživanjem.

  8. Izbrišite tačku i zarez na kraju odredbi Second FROM, a zatim pritisnite taster ENTER.

  9. Dodajte odredbu WHERE koja navodi da je vrednost polja "spoj" bez vrednosti u prvoj tabeli koja je navedena u odredbi FROM (leva tabela).

    Na primer, ako je klauzula "od":

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    Dodali biste sledeće odredbu WHERE:

    WHERE Products.ID IS NULL

  10. Otkucajte tačku i zarez (;) na kraju klauzule Where ukazuje na kraj upita za Uniju.

  11. Na kartici Dizajn, u grupi Rezultati kliknite na dugme Pokreni.

Unakrsni spojevi

Unakrsni spojevi se razlikuju od unutrašnjih i spoljnih spojeva u kojima nisu eksplicitno predstavljeni u Pristup. U unakrsnom udruženom, svaki od ovih tabela se kombinuje sa svakim od njih iz druge tabele, što dovodi do onog što se zove unakrsni proizvod ili Kartesian proizvod. Svaki put kada pokrećete upit koji ima tabele koje nisu izričito spojene, rezultat je unakrsni proizvod. Unakrsna spajanja su obično nenamerna, ali postoje slučajevi gde mogu da budu korisni.

Zašto da koristim unakrsni spoj?

Ako želite da ispitajte svaku moguću kombinaciju redova između dve tabele ili upita, koristite unakrsni spoj. Na primer, pretpostavimo da je vaš posao imao spektakularnu godinu, a vi razmišljate da dajete klijente korisnicima. Možete da napravite upit koji sabira kupovine svakog klijenta, kreirate malu tabelu koja ima nekoliko mogućih procenata popusta i kombinuje dva u drugom upitu koji izvršava unakrsni spoj. Završite sa upitom koji prikazuje niz hipotetičke vrednosti za svakog klijenta.

Kako da koristim unakrsni spoj?

Unakrsni spoj se kreira svaki put kada u upitu dodate tabele ili upite i ne kreirate barem jedan eksplicitni spoj za svaku tabelu ili upit. Access kombinuje sve redove iz svake tabele ili upita koji nisu izričito pridruženi bilo kojoj drugoj tabeli ili upitu u svakom drugom nizu rezultata. Razmotrite plan popusta iz prethodnog pasusa. Pretpostavimo da imate 91 klijenata i da želite da potražite pet mogućih procenata popusta. Unakrsni spoj daje 455 redova (proizvod 91 i 5).

Kao što možete da zamislite, nenamerni unakrsni spojevi mogu da kreiraju ogromne brojeve redova u rezultatima upita. Pored toga, ovi rezultati su generalno besmisleni, jer ako zaista ne nameravate da kombinujete svaki red sa svakim drugim red, većina kombinovanih redova koji se pojavljuju u rezultatima neće imati smisla. Konačno, upiti koji koriste nenamerne unakrsne spojeve mogu dugo da se pokrenu.

Nenamerni unakrsni spoj u prikazu dizajna upita

1. zaokružena polja treba da se spoje međusobno.

Nenamerni Dekartov proizvod

1. zabeležite veliki broj zapisa.

Ispravljeni rezultat upita

1. imajte na umu da je broj zapisa mnogo manji.

Vrh stranice

Pridružite tabele na osnovu nejednakosti vrednosti polja

Pridružene stavke ne moraju da budu zasnovane na jednakosti polja. Spoj može da bude zasnovan na bilo kom operator za poređenje, na primer veću od (>), manjem od (<) ili nije jednak (<>). Pridruženje koje nisu zasnovane na ekvienenciju nazivaju se uporedni spojevi.

Ako želite da kombinujete redove sa dva izvora podataka na osnovu vrednosti polja koja nisu jednaka, koristite uporedni spoj. Tipično, jednakim spojevima se zasnivaju na većem od (>), manjem od (<), većem od (), većem od ili jednako (>=) ili manje od ili jednako (<=) operatori za poređenje. Uporedni spojevi koji se zasnivaju na operateru "not = (<>)" mogu da vrate gotovo jednako više redova kao unakrsni spojevi, a rezultate je teško interpretirati.

Kako se koristi uporedni spoj?

Uporedni spojevi nisu podržani u prikazu dizajna. Ako želite da ih koristite, to morate da uradite pomoću SQL prikaza. Međutim, možete da kreirate spoj u prikazu dizajna, prebacite se na SQL prikaz, pronađete operator za poređenje = (=) sa poređenjem i da ga promenite u operator koji želite da koristite. Kada to uradite, možete ponovo da otvorite upit u prikazu dizajna ako operator za poređenje ponovo promenite u vrednost jednako (=) u SQL prikazu.

Brisanje spajanja

Ako Access automatski kreira spoj koji ne želite ili ako kreirate spoj po pogrešnoj vrednosti – na primer, spoj između dva polja koja ima slične tipove podataka – možete da izbrišete spoj.

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

  2. Pritisnite taster Delete.

– ili –

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

Vrh stranice

Napomena:  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 da nam javite da li su informacije bile korisne? Ovo je članak na engleskom jeziku za referencu.​

Takođe pogledajte

Dodavanje zapisa u tabelu pomoću upita za dodavanje

kombinujte rezultate nekoliko upita za izdvajanje pomoću upita za ujedinjenje

Kreirajte upit zasnovan na kreiranju više tabela

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

×