Yhdistää lähdetaulukon tietueet käytettäessä missä tahansa FROM-lauseessa.
Syntaksi
FROM taulukko1 [ LEFT | RIGHT ] JOIN taulukko2
ON taulukko1.kenttä1vertailuoper taulukko2.kenttä2LEFT JOIN- ja RIGHT JOIN -toiminnoissa on seuraavat osat:
Osa |
Kuvaus |
taulukko1, taulukko2 |
Niiden taulukkojen nimet, joista tietueet yhdistetään. |
kenttä1, kenttä2 |
Yhdistettävien kenttien nimet. Kenttien täytyy olla samaa tietotyyppi ja sisältää samantyyppisiä tietoja, mutta niiden ei tarvitse olla samannimisiä. |
vertailuoperaattori |
Jokin seuraavista relaatiovertailuoperaattoreista: "=", "<", ">", "<=", ">=," tai "<>." |
Huomautuksia
LEFT JOIN -toiminnolla luodaan vasen ulkoliitos. Vasen ulkoliitos sisältää kaikki ensimmäisen (vasemmanpuoleisen) taulukon tietueet, vaikkei toisessa (oikeanpuoleisessa) taulukossa olisikaan tietueita vastaavia arvoja.
RIGHT JOIN -toiminnolla luodaan oikea ulkoliitos. Oikea ulkoliitos sisältää kaikki toisen (oikeanpuoleisen) taulukon tietueet, vaikkei ensimmäisessä (vasemmanpuoleisessa) taulukossa olisikaan tietueita vastaavia arvoja
LEFT JOIN -toiminnolla on esimerkiksi mahdollista valita Osastot-taulukosta (vasemmalla) ja Työntekijät-taulukosta (oikealla) kaikki osastot mukaan lukien ne osastot, joille ei ole määritetty työntekijöitä. Kun halutaan valita kaikki työntekijät mukaan lukien ne työntekijät, joita ei ole määritetty millekään osastolle, käytetään RIGHT JOIN -toimintoa.
Seuraava esimerkki osoittaa, kuinka Luokat- ja Tuotteet-taulukoiden LuokanTunnus-kentät voidaan liittää toisiinsa. Kysely tuottaa kaikkien luokkien luettelon, joka sisältää myös tuotteettomat luokat:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
Tässä esimerkissä LuokanTunnus on liitetty kenttä, mutta ei sisälly kyselyn tuloksiin, koska se ei sisälly SELECT-lausekkeeseen. Jos liitetty kenttä halutaan sisällyttää, kentän nimi täytyy kirjoittaa SELECT-lausekkeeseen – tässä tapauksessa Categories.CategoryID.
Kun halutaan luoda kysely, joka sisältää vain ne tiedostot, joissa liitettyjen kenttien tiedot ovat samat, käytetään INNER JOIN -toimintoa.
-
LEFT JOIN tai RIGHT JOIN voidaan sijoittaa INNER JOIN -lauseen sisään, mutta INNER JOIN -lausetta ei voi sijoittaa LEFT JOIN- tai RIGHT JOIN -lauseeseen. Lisätietoja liitosten sijoittamisesta toisten liitosten sisään on INNER JOIN -ohjeaiheessa.
-
Useita ON-lauseita voi linkittää toisiinsa. Lisätietoja lauseiden linkittämisestä on INNER JOIN -ohjeaiheessa.
Jos yrität liittää toisiinsa kenttiä, jotka sisältävät Muistio- tai OLE-objektitietoja, tapahtuu virhe.