Kombinuje záznamy ze dvou tabulek, kdykoli ve společném poli existují shodné hodnoty.
Syntaxe
FROM tabulka1 INNER JOIN tabulka2 ON tabulka1. pole1compopr tabulka2. 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í. Nejedná-li se o číselná pole, musí mít obě pole stejný datový typ a obsahovat stejný druh dat, názvy polí se však nemusejí shodovat. |
| operátor_porovnání | Libovolný relační porovnávací 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. Naproti tomu k výběru všech oddělení (i když některá nemají přiřazené žádné zaměstnance) nebo všech zaměstnanců (i když někteří nejsou přiřazení do žádného oddělení) můžete použít operaci LEFT JOIN nebo RIGHT JOIN a vytvořit vnější spojení.
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:
SELECT pole
FROM tabulka1 INNER JOIN tabulka2
NA tabulce1. pole1compoprtable2. Pole1 A DÁLE
NA tabulce1. pole2složený2. pole2) NEBO
NA tabulce1. pole3compoprtable2. pole3)];
Můžete také vnořit příkazy JOIN pomocí následující syntaxe:
SELECT pole
FROM TABLE1 INNER JOIN
(tabulka2 INNER JOIN [( ]tabulka3
[INNER JOIN [( ]tabulkax [INNER JOIN ...)]
NA tabulce3. pole3compoprtablex. fieldx)]
NA tabulce2. pole2složený3. pole3)
NA tabulce1. 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.