Kombinira zapise iz dvije tablice kad god se u zajedničkom polju nalaze podudarne vrijednosti.
Sintaksa
FROM tablica1 INNER JOIN tablica2 ON tablica1. Polje1COMPOPR 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 vrste podataka i sadržavati istovrsne podatke, ali ne moraju imati isti naziv. |
| operatorusporedbe | Bilo koji relacijski operator uspoređivanja: "=," "<," "><=," ">=," 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 vanjski spoj.
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 fields
FROM TABLE1 INNER JOIN tablica2
ON tablica1. Polje1Složeno2. Polje1 I
ON tablica1. Polje2Složeno2. polje 2) ILI
ON tablica1. field3compoprtable2. polje3)];
Naredbe JOIN možete ugnijezditi pomoću sljedeće sintakse:
SELECT fields
FROM TABLE1 INNER JOIN
(tablica2 INNER JOIN [( ]tablica3
[INNER JOIN [( ]tablicax [INNER JOIN ...)]
NA TABLICI 3. field3compoprtablex. poljex)]
ON table2. Polje2Složeno3. polje 3)
ON tablica1. Polje1Složeno2. 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.