Operace LEFT JOIN, RIGHT JOIN

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

Při použití v libovolné klauzuli FROM slučuje záznamy ze zdrojových tabulek.

Syntaxe

FROM tabulka1 [ VLEVO | RIGHT ] JOIN table2
ON table1.field1compopr table2.field2

Operace LEFT JOIN a RIGHT JOIN mají následující části:

Část Popis
tabulka1, tabulka2 Názvy tabulek, ze kterých jsou slučovány záznamy
pole1, pole2 Názvy slučovaných polí. Pole 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

K vytvoření levého vnějšího spojení použijte operaci LEFT JOIN. Levá vnější spojení zahrnují všechny záznamy z první ze dvou tabulek (vlevo), a to i záznamy, pro které nejsou odpovídající hodnoty v druhé tabulce (vpravo).

K vytvoření správného vnějšího spojení použijte operaci RIGHT JOIN. Pravá vnější spojení zahrnují všechny záznamy z druhé ze dvou tabulek (vpravo), a to i záznamy, pro které nejsou odpovídající hodnoty v první tabulce (vlevo).

Pomocí operace LEFT JOIN s tabulkami Oddělení (vlevo) a Zaměstnanci (vpravo) můžete například vybrat všechna oddělení včetně těch, do kterých nejsou přiřazení žádní zaměstnanci. K výběru všech zaměstnanců včetně těch, kteří nejsou přiřazení do žádného oddělení, byste použili operaci RIGHT JOIN.

Následující příklad ukazuje, jak byste mohli tabulky Categories a Products spojit pomocí pole CategoryID. Dotaz vytvoří seznam všech kategorií včetně těch, které neobsahují žádné produkty:

SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;

V tomto příkladu je spojeným polem CategoryID, avšak toto pole není zahrnuté ve výsledcích dotazu, protože není zahrnuté v příkazu SELECT. Pokud chcete zahrnout spojené pole, zadejte název pole v příkazu SELECT – v tomto případě Categories.CategoryID.

K vytvoření dotazu zahrnujícího jenom záznamy, ve kterých jsou data ve spojených polích shodná, použijte operaci INNER JOIN.

  • FUNKCE LEFT JOIN nebo RIGHT JOIN se dají vnořit do vnitřního spojení, ale vnitřní spojení nemůže být vnořené do levého nebo pravého spojení. Podívejte se na diskuzi o vnořování v tématu INNER JOIN a podívejte se, jak vnořit spojení do jiných spojení.
  • Můžete propojit několik klauzulí ON. Postup najdete v části o propojování klauzulí v tématu o operaci INNER JOIN.

Pokud se pokusíte spojit pole obsahující data Memo nebo objekt OLE, dojde k chybě.