Kombinira zapise izvirne tabele, ko so uporabljeni v poljubnem stavku FROM.
Sintaksa
FROM tabela1 [ LEFT | RIGHT ] JOIN tabela2
ON tabela1.polje1primerjalnioperator tabela2.polje2Operaciji LEFT JOIN in RIGHT JOIN sta sestavljeni iz teh delov:
Del |
Opis |
tabela1, tabela2 |
Imena tabel z zapisi, ki so združeni. |
polje1, polje2 |
Imena polj, ki so združena. Polja morajo biti istega podatkovni tip in imeti isto vrsto podatkov, ni jim pa treba imeti istega imena. |
compopr |
Kateri koli relacijski primerjalni operator: "=," "<," ">," "<=," ">=," ali "<>." |
Opombe
Z operacijo LEFT JOIN ustvarite levi zunanji stik. Levi zunanji stiki vključujejo vse zapise iz prve (leve) od dveh tabel, tudi če ni ujemajočih se vrednosti za zapise v drugi (desni) tabeli.
Z operacijo RIGHT JOIN ustvarite desni zunanji stik. Desni zunanji stiki vključujejo vse zapise iz druge (desne) od dveh tabel, tudi če ni ujemajočih se vrednosti za zapise v prvi (levi) tabeli.
LEFT JOIN lahko na primer uporabite za tabeli Oddelki (levo) in Zaposleni (desno), da izberete vse oddelke, vključno s tistimi, ki nimajo dodeljenih zaposlenih. Če želite izbrati vse zaposlene, vključno s tistimi, ki niso dodeljeni oddelku, uporabite RIGHT JOIN.
V spodnjem primeru je prikazano, kako tabeli Kategorije in Izdelki združite v polju »CategoryID«. Poizvedba vrne seznam vseh kategorij, vključno s tistimi, ki ne vsebujejo izdelkov:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
V tem primeru je »CategoryID« združeno polje, vendar ni vključeno v rezultate poizvedbe, ker ni vključeno v izjavi SELECT. Če želite vključiti združeno polje, vnesite ime polja v izjavo SELECT – v tem primeru Categories.CategoryID.
Če želite ustvariti poizvedbo, ki vsebuje le zapise, v katerih so podatki v združenih poljih enaki, uporabite operacijo INNER JOIN.
-
Operacijo LEFT JOIN ali RIGHT JOIN lahko ugnezdite znotraj operacije INNER JOIN; operacije INNER JOIN pa ne morete ugnezditi znotraj operacije LEFT JOIN ali RIGHT JOIN. Preberite razpravo o gnezdenju v temi o operaciji INNER JOIN, kjer je razloženo, kako ugnezdite stike znotraj stikov.
-
Povežete lahko več stavkov ON. Več o tem preberite v razpravi o povezovanju stavkov v temi o operaciji INNER JOIN.
Če poskušate združiti polja z zapiski ali predmeti OLE, pride do napake.