Toiming INNER JOIN

Ü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

Mõni 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.väli3võrdlusmärktabelx.välix)]
ON tabel2.väli2võrdlusmärktabel3.väli3)
ON tabel1.field1võ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.



Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×