Kombinuje zapise iz dve tabele svaki put kada postoje vrednosti koje se podudaraju u zajedničkom polju.
Sintaksa
FROM tabela1 INNER JOIN tabela2 ON tabela1.polje1compopr 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. |
operator_poređenja |
Bilo koji relacioni operator poređenja: „=,“ „<,“ „>,“ „<=,“ „>=,“ ili „<>.“ |
Napomene
Možete da koristite operaciju INNER JOIN u bilo kojoj odredbi FROM. Ovo je najčešći tip spoja. Unutrašnja spajanja kombinuju zapise iz dve tabele svaki put kada postoje vrednosti koje se podudaraju u polju koje je zajedničko za obe tabele.
Možete da koristite INNER JOIN sa tabelama Odeljenja i Zaposleni da biste izabrali sve zaposlene u svakom odeljenju. Nasuprot tome, da biste izabrali sva odeljenja (čak i ako neka od njih nemaju zaposlene) ili sve zaposlene (čak i ako neki nisu dodeljeni odeljenju), možete da koristite operaciju LEFT JOIN ili RIGHT JOIN da biste kreirali spoljni spoj.
Ako pokušate da spojite polja koja sadrže podatke Memoranduma ili OLE objekta, dobija se greška.
Možete da spojite dva numerička polja sličnih tipova. Na primer, možete da spojite polja Automatsko numerisanje i Dugo zato što su istog tipa. Međutim, nije moguće spojiti polja Jednostruko i Dvostruko.
Sledeći primer pokazuje kako možete da spojite tabele Kategorije i Proizvodi u polju ID kategorije:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
U prethodnom primeru, ID kategorije je objedinjeno polje, ali nije uključeno u rezultate upita jer nije navedeno u izrazu SELECT. Da biste uključili spojeno polje, uključite ime polja u izraz SELECT – u ovom slučaju, Categories.CategoryID.
Takođe možete povezati nekoliko odredbi ON u izrazu JOIN pomoću sledeće sintakse:
SELECT polja
FROM tabela1 INNER JOIN tabela2 ON tabela1.polje1compoprtabela2.polje1 AND ON tabela1.polje2compoprtabela2.polje2) OR ON tabela1.polje3compoprtabela2.polje3)];Možete da ugnezdite izraze JOIN pomoću sledeće sintakse:
SELECT polja
FROM tabela1 INNER JOIN (tabela2 INNER JOIN [( ]tabela3 [INNER JOIN [( ]tablex [INNER JOIN ...)] ON tabela3.polje3compoprtablex.fieldx)] ON tabela2.polje2compoprtabela3.polje3) ON tabela1.polje1compoprtabela2.polje2;Operacija LEFT JOIN ili RIGHT JOIN može biti ugnežđena unutar operacije INNER JOIN, ali INNER JOIN ne može biti ugnežđen unutar operacije LEFT JOIN ili RIGHT JOIN.