Yhdistää kahden taulukon tietueet, kun yhteisessä kentässä on toisiaan vastaavia arvoja.
Syntaksi
FROM taulukko1 INNER JOIN taulukko2 ON taulukko1. kenttä1vertailuoper 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 tietotyyppien on oltava samaa ja sisältää samantyyppisiä tietoja, mutta niiden ei tarvitse olla samannimisiä. |
| vertailuoperaattori | Mikä tahansa relaatiovertailuoperaattori: "=", "<," ">", "<=", ">=" 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), voit käyttää LEFT JOIN- tai RIGHT JOIN -toimintoa ulkoliitoksen luomiseen.
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ä1vertailukelpois2. kenttä1 JA
ON taulukko1. kenttä2vertailukelpois2. kenttä2) TAI
ON taulukko1. kenttä3vertailukelpoista2. 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 [( ]tablex [INNER JOIN ...)]
TAULUKOSSA 3. field3compoprtablex.kenttäx)]
TAULUKOSSA 2. kenttä2vertailukelpoista 3. kenttä 3)
ON taulukko1. kenttä1vertailukelpois2. 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.