Operacija INNER JOIN

Kombinira zapise iz dvije tablice kad god se u zajedničkom polju nalaze podudarne vrijednosti.

Sintaksa

FROM tablica1 INNER JOIN tablica2 ON tablica1.polje1operatorusporedbe 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.

operatorusporedbe

Bilo koji relacijski operator usporedbe: "=," "<," ">," "<=," ">=," ili "<>."


Napomene

Operaciju INNER JOIN možete koristiti u bilo kojem uvjetu FROM. To je najčešća vrsta spoja. Unutarnji spojevi kombiniraju zapise iz dvije tablice kad god se u polju zajedničkom objema tablicama nalaze podudarne vrijednosti.

Da biste odabrali sve zaposlenike u svakom odjelu, upotrijebite INNER JOIN s tablicama Odjeli i Zaposlenici. Da biste odabrali sve odjele (čak i u nekima nema dodijeljenih zaposlenika) ili sve zaposlenike (čak i ako neki nisu dodijeljeni nijednom odjelu), možete upotrijebiti operaciju LEFT JOIN ili RIGHT JOIN da biste stvorili vanjsko spajanje.

Ako pokušate spojiti polja s podacima dopisa ili OLE objekta, doći će do pogreške.

Spojiti možete bilo koji par numeričkih polja sličnih vrsta. Spajati možete, na primjer, u poljima s vrstama podataka AutoNumber i Long jer su to slične vrste podataka. No ne možete spajati polja s vrstama podataka Single i Double.

U sljedećem primjeru objašnjava se spajanje tablica Kategorije i Proizvodi u polju IDKategorije.

SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products
ON Categories.CategoryID = Products.CategoryID;

U prethodnom je primjeru IDKategorije spojeno polje, ali nije uvršteno u izlaz upita jer nije dodano u naredbu SELECT. Da biste dodali spojeno polje, u naredbu SELECT dodajte naziv polja u ovom slučaju Categories.CategoryID.

Pomoću sljedeće sintakse povezati možete i nekoliko uvjeta ON u naredbi JOIN:

SELECT polja
FROM tablica1 INNER JOIN tablica2
ON tablica1.polje1operatorusporedbetablica2.polje1 AND
ON tablica1.polje2operatorusporedbetablica2.polje2) OR
ON tablica1.polje3operatorusporedbetablica2.polje3)];

Naredbe JOIN možete ugnijezditi pomoću sljedeće sintakse:

SELECT polja
FROM tablica1 INNER JOIN
(tablica2 INNER JOIN [( ]tablica3
[INNER JOIN [( ]tablicax [INNER JOIN ...)]
ON tablica3.polje3operatorusporedbetablicax.poljex)]
ON tablica2.polje2operatorusporedbetablica3.polje3)
ON tablica1.polje1operatorusporedbetablica2.polje2;

Operacije LEFT JOIN ili RIGHT JOIN mogu biti ugniježđene unutar operacije INNER JOIN, ali INNER JOIN ne može biti ugniježđena unutar operacija LEFT JOIN ili RIGHT JOIN.



Proširite svoje vještine
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.

×