Yhdistää kahden taulukon tietueet, kun yhteisessä kentässä on toisiaan vastaavia arvoja.
Syntaksi
FROM taulukko1 INNER JOIN taulukko2 ON taulukko1.kenttä1vertailuoperaattori taulukko2.kenttä2
INNER JOIN -toiminnossa on seuraavat osat:
Osa |
Kuvaus |
taulukko1, taulukko2 |
Niiden taulukkojen nimet, joista tietueet yhdistetään. |
kenttä1, kenttä2 |
Yhdistettävien kenttien nimet. Jos ne eivät ole numeerisia, kenttien täytyy olla samaa tietotyyppi ja sisältää samantyyppisiä tietoja, mutta niiden ei tarvitse olla samannimisiä. |
vertailuoperaattori |
Jokin seuraavista relaatiovertailuoperaattoreista: "=", "<", ">", "<=", ">=," tai "<>." |
Huomautuksia
Voit käyttää INNER JOIN -toimintoa kaikissa FROM-lausekkeissa. Tämä on yleisin liitostyyppi. INNER JOIN yhdistää kahden taulukon tietueet, kun taulukoiden yhteisessä kentässä on toisiaan vastaavia arvoja.
Voit valita kunkin osaston kaikki työntekijät, kun käytät INNER JOIN -toimintoa sekä Osastot- ja Työntekijät-taulukoita. Jos haluat valita kaikki osastot (vaikka joillekin osastoille ei ole määritetty työntekijöitä) tai kaikki työntekijät (vaikka kaikkia ei ole määritetty osastoihin), luo ulkoliitos LEFT JOIN- tai RIGHT JOIN -toiminnon avulla.
Jos yrität liittää toisiinsa kenttiä, jotka sisältävät Muistio- tai OLE-objektitietoja, tapahtuu virhe.
Voit liittää kaksi samantyyppistä numeerista kenttää. Voit esimerkiksi liittää Laskuri- ja Pitkä-kentät, koska ne ovat samantyyppisiä. Et kuitenkaan voi liittää Perus- ja Kaksoistarkkuus-kenttätyyppejä.
Seuraava esimerkki osoittaa, kuinka Luokat- ja Tuotteet-taulukoiden LuokanTunnus-kentät voidaan liittää toisiinsa.
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
Edellisessä 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 on sisällytettävä SELECT-lausekkeeseen – tässä tapauksessa Categories.CategoryID.
Voit myös linkittää useita ON-lauseita JOIN-lausekkeessa seuraavan syntaksin avulla:
SELECT kentät
FROM taulukko1 INNER JOIN taulukko2 ON taulukko1.kenttä1vertailuoperaattoritaulukko2.kenttä1 AND ON taulukko1.kenttä2vertailuoperaattoritaulukko2.kenttä2) OR ON taulukko1.kenttä3vertailuoperaattoritaulukko2.kenttä3)];Voit myös asettaa JOIN-lausekkeita sisäkkäin seuraavan syntaksin avulla:
SELECT kentät
FROM taulukko1 INNER JOIN (taulukko2 INNER JOIN [( ]taulukko3 [INNER JOIN [( ]taulukkox [INNER JOIN ...)] ON taulukko3.kenttä3vertailuoperaattoritaulukkox.kenttäx)] ON taulukko2.kenttä2vertailuoperaattoritaulukko3.kenttä3) ON taulukko1.kenttä1vertailuoperaattoritaulukko2.kenttä2;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.