Kombinira zapise iz izvorišne tablice kad se koristi u bilo kojem uvjetu FROM.
Sintaksa
FROM tablica1 [ LEFT | RIGHT ] JOIN tablica2
ON tablica1.polje1compopr tablica2.polje2Operacije 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 vrsta podatka i sadržavati istovrsne podatke, ali ne moraju imati isti naziv. |
operatorusporedbe |
Bilo koji relacijski operator usporedbe: "=," "<," ">," "<=," ">=," ili "<>." |
Napomene
Pomoću operacije LEFT JOIN stvorite 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 desno vanjsko spajanje. 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.
Možete, primjerice, koristiti LEFT JOIN s tablicama Odjeli (lijevo) i Zaposlenici (desno) da biste odabrali sve odjele, uključujući i one kojima nisu dodijeljeni zaposlenici. Da biste odabrali sve zaposlenike, uključujući one koji nisu dodijeljeni odjelu, koristite 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.