Ühendab kahe tabeli kirjed, kui ühisel väljal olevad väärtused kattuvad.
Süntaks
FROM tabel1 INNER JOIN tabel2 ON tabel1.väli1võrdlusmärk tabel2.väli2
Toiming INNER JOIN koosneb järgmistest osadest.
Osa |
Kirjeldus |
tabel1, tabel2 |
Nende tabelite nimed, mille kirjed liidetakse. |
väli1, väli2 |
Ühendatavate väljade nimed. Kui need pole numbriväljad, peab väljadel olema sama andmetüüp ja need peavad sisaldama sarnaseid andmeid, kuid neil ei pea olema sama nimi. |
võrdlusmärk |
Suvaline relatsiooniline võrdlusmärk: "=", "<", ">", "<=", ">=" või "<>". |
Märkused
Klauslit INNER JOIN saab kasutada mis tahes FROM-klauslis. See on kõige levinumat tüüpi ühendamine. INNER JOINED klausel ühendab kahe tabeli kirjed, kui mõlema tabeli ühisel väljal olevad väärtused kattuvad.
Näiteks saab INNER JOIN-i kasutada tabelitega Osakonnad ja Töötajad, et valida kõik töötajad teatud osakonnas. Seevastu kõigi osakondade (isegi kui mõnes pole töötajaid) või kõigi töötajate (isegi ilma osakonnata) valimiseks saate kasutada toimingut LEFT JOIN või RIGHT JOIN, et luua väline ühendamine.
Kui proovite ühendada välju, milles on andmed tüübiga Memo või OLE-objektid, ilmneb tõrge.
Saate ühendada mis tahes kaks sama tüüpi arvulise väärtusega välja. Näiteks saate ühendada automaatnumbrid ja pikad täisarvud, sest need on sama tüüpi. Kuid ühendada ei saa lihtandmeid ja topelttäpsusega andmeid.
Järgmises näites selgitatakse, kuidas saate ühendada tabelite Categories ja Products väljadel CategoryID olevad andmed:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
Selles näites ühendatakse välja CategoryID andmed, aga seda ei kaasata päringu väljundisse, sest seda pole valitud SELECT-lauses. Ühendatud välja kaasamiseks lisage välja nimi ka SELECT-lausesse, praegusel juhul järgmiselt Categories.CategoryID.
JOIN-lauses saab järgmise süntaksi abil linkida ka mitu ON-klauslit:
SELECT väljad
FROM tabel1 INNER JOIN tabel2 ON tabel1.väli1võrdlusmärktabel2.väli1 AND ON tabel1.väli2võrdlusmärktabel2.väli2) OR ON tabel1.väli3võrdlusmärktabel2.tabel3)];Järgmise süntaksi abil saate JOIN-lauseid ka pesastada:
SELECT väljad
FROM tabel1 INNER JOIN (tabel2 INNER JOIN [( ]tabel3 [INNER JOIN [( ]tabelx [INNER JOIN ...)] ON tabel3.field3compoprtablex.fieldx)] ON tabel2.field2compoprtable3.väli3) ON tabel1.väli1võrdlusmärktabel2.väli2;Klauslid LEFT JOIN ja RIGHT JOIN saab pesastada klauslisse INNER JOIN, aga INNER JOIN-i ei saa pesastada klauslitesse LEFT JOIN ega RIGHT JOIN.