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 spojenih polja. Ako nisu numerička, polja moraju da budu istog tipa podataka i da sadrže istu vrstu podataka, ali ne moraju da imaju isto ime. |
| operator_poređenja | Bilo koji 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 nisu dodeljena zaposlenima) ili sve zaposlene (čak i ako neka nisu dodeljena odeljenju), možete da koristite operaciju LEFT JOIN ili RIGHT JOIN da biste kreirali spoljno spajanje.
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. polje1compoprtable2. polje1 I
ON tabela1. polje2compoprtable2. polje2) ILI
ON tabela1. polje3compoprtable2. 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. polje2compoprtable3. polje3)
ON tabela1. polje1compoprtable2. 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.