Kombineerib mis tahes FROM-klauslis kasutamise korral lähtetabeli kirjed.
Süntaks
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1compopr table2.field2Toimingud LEFT JOIN ja RIGHT JOIN koosnevad järgmistest osadest.
Osa |
Kirjeldus |
tabel1, tabel2 |
Nende tabelite nimed, mille kirjed liidetakse. |
väli1, väli2 |
Liidetavate väljade nimed. Väljadel peab 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
Kasutage toimingut LEFT JOIN, et luua vasakpoolne väline ühendamine. Kahe tabeli korral hõlmavad vasakpoolsed välised ühendamised kõiki kirjeid esimesest (vasakpoolsest) tabelist ka siis, kui teises (parempoolses) tabelis pole neile kirjetele vastavaid väärtusi.
Kasutage toimingut RIGHT JOIN, et luua parempoolne väline ühendamine. Kahe tabeli korral hõlmavad parempoolsed välised ühendamised kõiki kirjeid teisest (parempoolsest) tabelist ka siis, kui esimeses (vasakpoolses) tabelis pole neile kirjetele vastavaid väärtusi.
Näiteks saate toimingut LEFT JOIN kasutada tabelites Departments (Osakonnad; vasakpoolne) ja Employees (Töötajad; parempoolne) kõigi osakondade valimiseks – sealhulgas need osakonnad, millele pole töötajaid määratud. Kõigi töötajate valimiseks (sh nende, keda pole ühtegi osakonda määratud) saate aga kasutada toimingut RIGHT JOIN.
Järgmises näites selgitatakse, kuidas saate ühendada tabelite Categories (Kategooriad) ja Products (Tooted) väljadel CategoryID olevad andmed. Päring koostab loendi kõigist kategooriatest, sealhulgas nendest, mis ei sisalda tooteid:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
Selles näites ühendatakse välja CategoryID andmed, ent seda ei kaasata päringu tulemitesse, kuna seda pole SELECT-lauses. Ühendatud välja kaasamiseks sisestage välja nimi ka SELECT-lausesse, praegusel juhul järgmiselt: Categories.CategoryID.
Sellise päringu koostamiseks, mis sisaldab üksnes selliseid kirjeid, mille korral ühendatud väljadel on samad andmed, kasutage toimingut INNER JOIN.
-
Toiminguid LEFT JOIN ja RIGHT JOIN saab pesastada toimingusse INNER JOIN, ent INNER JOIN-i ei saa pesastada toimingutesse LEFT JOIN ega RIGHT JOIN. Täpsemat teavet selle kohta, kuidas ühendamisi teistesse ühendamistesse pesastada, leiate toimingut INNER JOIN käsitleva artikli pesastamisjuhistest.
-
Mitu ON-klauslit saate omavahel linkida. Selle kohta leiate teavet toimingut INNER JOIN käsitleva artikli klauslite linkimise juhistest.
Kui proovite ühendada välju, milles on Memo- või OLE-objekti tüüpi andmed, ilmneb tõrge.