Kombinuje zapise izvorne tabele kada se koristi u bilo kojoj odredbi FROM.
Sintaksa
FROM tabela1 [ LEFT | RIGHT ] JOIN tabela2
ON tabela1.polje1compopr 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 biti istog tipa podataka i moraju da sadrže istu vrstu podataka, ali ne moraju da imaju isto ime. |
| operator_poređenja | Bilo koji operator poređenja: "=," "," "<," "<>=," "=," ">=," ili "<>." |
Napomene
Koristite operaciju LEFT JOIN da biste kreirali levi spoljni spoj. Leva spoljna spajanja sadrže sve zapise iz prve (leve) od dve tabele, čak i ako nema podudaranja vrednosti za zapise u drugoj (desnoj) tabeli.
Koristite operaciju RIGHT JOIN da biste kreirali desni spoljni spoj. Desna spoljna spajanja sadrže sve zapise iz druge (desne) od dve tabele, čak i ako nema podudaranja vrednosti za zapise u prvoj (levoj) tabeli.
Na primer, možete da koristite LEFT JOIN sa tabelama Odeljenja (levo) i Zaposleni (desno) da biste izabrali sva odeljenja, uključujući ona koji nemaju dodeljene zaposlene. Da biste izabrali sve zaposlene, uključujući one koji nisu dodeljeni nekom odeljenju, koristite RIGHT JOIN.
Sledeći primer pokazuje kako možete da spojite tabele Kategorije i Proizvodi u polju ID kategorije. Upit će vratiti listu svih kategorija, uključujući one koje ne sadrže proizvode:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
U ovom 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, unesite ime polja u izraz SELECT – u ovom slučaju, Categories.CategoryID.
Da biste kreirali upit koji sadrži samo zapise u kojima su podaci u spojenim poljima isti, koristite operaciju INNER JOIN.
- 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. Pogledajte diskusiju o ugnežđivanja u temi INNER JOIN da biste videli kako da ugnezdite spajanja unutar drugih spajanja.
- Možete povezati više odredbi ON. Pogledajte diskusiju o povezivanju odredbi u temi INNER JOIN da biste videli kako se to radi.
Ako pokušate da spojite polja koja sadrže podatke Memoranduma ili OLE objekta, dobija se greška.