Kombinuje záznamy z dvoch tabuliek vždy, keď sa vyskytujú zhodné hodnoty v spoločnom poli.
Syntax
TABUĽKA FROM1 TABUĽKA INNER JOIN2ON tabuľka1. tabuľka field1compopr2. pole2
Operácia INNER JOIN má tieto časti:
| Časť | Popis |
|---|---|
| tabuľka1 , tabuľka2 | Názvy tabuliek, ktorých záznamy sa spájajú. |
| pole1 , pole2 | Názvy polí, ktoré sa spájajú. Ak nie sú číselné, polia musia mať rovnaký typ údajov a musia obsahovať rovnaký druh údajov, ale nemusia mať rovnaký názov. |
| compopr | Ľubovoľný operátor relačného porovnávania: "=", "<," "" "<>=", ">=" alebo "<>." |
Poznámky
Operáciu INNER JOIN môžete použiť v ľubovoľnej klauzule FROM. Toto je najčastejší typ spojenia. Vnútorné spojenia skombinujú záznamy z dvoch tabuliek vždy, keď sa vyskytnú zhodné hodnoty v poli, ktoré je spoločné pre obidve tabuľky.
Príkaz INNER JOIN môžete použiť s tabuľkami Oddelenia a Zamestnanci na výber všetkých zamestnancov v každom oddelení. Naopak, ak chcete vybrať všetky oddelenia (aj keď niektorí nemajú priradených žiadnych zamestnancov) alebo všetkých zamestnancov (aj keď niektoré nie sú priradené k oddeleniu), môžete na vytvorenie vonkajšieho spojenia použiť operáciu LEFT JOIN alebo RIGHT JOIN.
Ak sa budete pokúšať spojiť polia obsahujúce údaje Memo alebo objektu OLE, vyskytne sa chyba.
Spojiť môžete ľubovoľné dve numerické polia, ktoré sú podobného typu. Môžete napríklad spojiť polia AutoNumber a Long, pretože sú to podobné typy. Nie je však možné spojiť polia typu Single a Double.
Nasledujúci príklad ukazuje, ako je možné spojiť tabuľky Kategórie a Produkty podľa poľa IDKategórie:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products
ON Categories.CategoryID = Products.CategoryID;
V predchádzajúcom príklade je IDKategórie spojené pole, no nie je zahrnuté vo výstupe dotazu, pretože sa nenachádza v príkaze SELECT. Ak chcete zahrnúť spojené pole, zahrňte názov poľa do príkazu SELECT – v tomto prípade Categories.CategoryID.
V príkaze JOIN môžete tiež prepojiť niekoľko klauzúl ON pomocou nasledujúcej syntaxe:
Polia SELECT
TABUĽKA FROM1 TABUĽKA INNER JOIN2
TABUĽKA ON1. field1compoprtable2. pole1 A
TABUĽKA ON1. field2compoprtable2. pole2) ALEBO
TABUĽKA ON1. field3compoprtable2. pole3)];
Príkazy JOIN môžete tiež vnoriť pomocou nasledujúcej syntaxe:
Polia SELECT
FROM tabuľka1 INNER JOIN
(tabuľka2 INNER JOIN [( ]tabuľka3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
TABUĽKA ON3. field3compoprtablex. fieldx)]
TABUĽKA ON2. field2compoprtable3. pole3)
TABUĽKA ON1. field1compoprtable2. pole2;
LEFT JOIN alebo RIGHT JOIN môžu byť vnorené do INNER JOIN, ale INNER JOIN nie je možné vnoriť do LEFT JOIN alebo RIGHT JOIN.