Operace INNER JOIN

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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.