Kombinuje záznamy z dvoch tabuliek vždy, keď sa vyskytujú zhodné hodnoty v spoločnom poli.
Syntax
FROM tabuľka1 INNER JOIN tabuľka2 ON tabuľka1.pole1compopr tabuľka2.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 spojených polí. Ak nie sú číselné, musia mať rovnaký typ údajova obsahovať rovnaký druh údajov, ale nemusia mať rovnaký názov. |
compopr |
Ľubovoľný operátor relácie 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í. Ak chcete vybrať všetky oddelenia (aj vtedy, ak v niektorých nie sú priradení žiadni zamestnanci), alebo všetkých zamestnancov (aj vtedy, ak nie sú priradení k žiadnemu oddeleniu), môžete vytvorenie vonkajšie spojenie 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:
SELECT polia
FROM tabuľka1 INNER JOIN tabuľka2 ON tabuľka1.pole1compoprtabuľka2.pole1 AND ON tabuľka1.pole2compoprtabuľka2.pole2) OR ON tabuľka1.pole3compoprtabuľka2.pole3)];Príkazy JOIN môžete tiež vnoriť pomocou nasledujúcej syntaxe:
SELECT polia
FROM tabuľka1 INNER JOIN (tabuľka2 INNER JOIN [( ]tabuľka3 [INNER JOIN [( ]tabuľkax [INNER JOIN ...)] ON tabuľka3.pole3compoprtabuľkax.polex)] ON tabuľka2.pole2compoprtabuľka3.pole3) ON tabuľka1.pole1compoprtabuľka2.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.