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. 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.