Kombinuje záznamy ze dvou tabulek, kdykoli ve společném poli existují shodné hodnoty.
Syntaxe
FROM tabulka1 INNER JOIN tabulka2 ON tabulka1. field1compopr table2. pole2
Operace INNER JOIN se skládá z těchto částí:
| Část | Popis |
|---|---|
| tabulka1, tabulka2 | Názvy tabulek, ze kterých jsou slučovány záznamy |
| pole1, pole2 | Názvy slučovaných polí. Pokud pole nejsou číselná, musí být stejného datového typu a musí obsahovat stejný druh dat, ale nemusí mít stejný název. |
| operátor_porovnání | Libovolný relační relační operátor: "=," "<," "><=,"> nebo "<>." |
Poznámky
Operaci INNER JOIN můžete použít z jakékoli klauzule FROM. Toto je nejběžnější typ spojení. Vnitřní spojení kombinují záznamy ze dvou tabulek, kdykoli ve společném poli obou tabulek existují shodné hodnoty.
INNER JOIN můžete použít s tabulkami Departments a Employees pro výběr všech zaměstnanců v jednotlivých odděleních. Naopak pokud chcete vybrat všechna oddělení (i když některá nemají přiřazené žádné zaměstnance) nebo všechny zaměstnance (i když někteří nejsou přiřazeni k oddělení), můžete k vytvoření vnějšího spojení použít operaci LEFT JOIN nebo RIGHT JOIN.
Pokud se pokusíte spojit pole obsahující data Memo nebo objekt OLE, dojde k chybě.
Můžete spojit jakákoli dvě číselná pole s podobnými typy. Můžete třeba spojit pole AutoNumber a Long, protože jsou podobného typu. Nemůžete ale spojit pole typu Single a Double.
Následující příklad ukazuje, jak byste mohli tabulky Categories a Products spojit pomocí pole CategoryID.
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products
ON Categories.CategoryID = Products.CategoryID;
V předchozím příkladu je spojeným polem CategoryID, toto pole ale není zahrnuto ve výstupu dotazu, protože není zahrnuto v příkazu SELECT. Pokud chcete zahrnout spojené pole, zahrňte název pole do příkazu SELECT – v tomto případě Categories.CategoryID.
V příkazu JOIN také můžete propojit několik klauzulí ON pomocí následující syntaxe:
POLE SELECT
FROM tabulka1 INNER JOIN tabulka2
ON table1. pole1compoprtable2. pole1 A
ON table1. field2compoprtable2. pole2) NEBO
ON table1. field3compoprtable2. pole3)];
Můžete také vnořit příkazy JOIN pomocí následující syntaxe:
POLE SELECT
FROM TABULKA1 INNER JOIN
(tabulka2 INNER JOIN [( ]tabulka3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ON table3. field3compoprtablex. fieldx)]
ON table2. pole2compoprtable3. pole3)
ON table1. pole1compoprtable2. pole2;
Operace LEFT JOIN a RIGHT JOIN můžou být vnořené uvnitř operace INNER JOIN. Operace INNER JOIN ale nemůže být vnořená uvnitř operací LEFT JOIN a RIGHT JOIN.