Kombinira zapise iz izvorišne tablice kad se koristi u bilo kojem uvjetu FROM.
Sintaksa
FROM TABLE1 [ LEFT | RIGHT ] JOIN table2
ON tablica1.polje1compopr tablica2.polje2
Operacije LEFT JOIN i RIGHT JOIN imaju sljedeće dijelove:
| Dio | Opis |
|---|---|
| tablica1, tablica2 | Nazivi tablica iz kojih se spajaju zapisi. |
| polje1, polje2 | Nazivi spojenih polja. 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
Upotrijebite operaciju LEFT JOIN da biste stvorili lijevi vanjski spoj. Lijeva vanjska pridruživanja obuhvaćaju sve zapise iz prve (lijeve) od dviju tablica, čak i ako nema podudarnih vrijednost za zapise u drugoj (desnoj) tablici.
Pomoću operacije RIGHT JOIN stvorite desni vanjski spoj. Desna vanjska pridruživanja obuhvaćaju sve zapise iz druge (desne) od dviju tablica, čak i ako nema podudarnih vrijednosti za zapise u prvoj (lijevoj) tablici.
Npr. možete upotrijebiti LEFT JOIN s tablicom Odjeli (lijeva) i Zaposlenici (desna) da biste odabrali sve odjele, uključujući i one kojima nije dodijeljen nijedan zaposlenik. Da biste odabrali sve zaposlenike, uključujući i one koji nisu dodijeljeni nijednom odjelu, morate upotrijebiti RIGHT JOIN.
Sljedeći primjer pokazuje kako biste mogli pridružiti tablice Kategorije i Proizvodi putem polja IDKategorije. Upit stvara popis svih kategorija, uključujući one koje ne sadrže nijedan proizvod:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
U ovom primjeru IDKategorije jest pridruženo polje, ali ono nije uvršteno u rezultate upita jer nije uvršteno u izjavu SELECT. Da biste uvrstili pridruženo polje, unesite naziv polja u izjavu SELECT – u ovom slučaju: Categories.CategoryID.
Da biste stvorili upit koji obuhvaća samo zapise u kojima su podaci u pridruženim poljima isti, upotrijebite operaciju INNER JOIN.
- Moguće je operaciju LEFT JOIN ili RIGHT JOIN ugnijezditi unutar operacije INNER JOIN, ali INNER JOIN se ne može ugnijezditi u LEFT JOIN ni RIGHT JOIN. Pogledajte raspravu o ugnježđivanju u temi o operaciji INNER JOIN da biste saznali kako ugnježđivati pridruživanja unutar drugih pridruživanja.
- Možete povezati veći broj uvjeta ON. Pogledajte raspravu o povezivanju uvjeta u temi o operaciji INNER JOIN da biste saznali kako se to radi.
Ako pokušate pridružiti polja koja sadrže podatke objekta Memo ili OLE objekta, pojavit će se pogreška.