Při použití v libovolné klauzuli FROM slučuje záznamy ze zdrojových tabulek.
Syntaxe
FROM tabulka1 [ LEFT | RIGHT ] JOIN tabulka2
ON tabulka1.pole1 operátor_porovnání tabulka2.pole2Operace 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í mít 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
Operace LEFT JOIN se používá k vytvoření levého vnějšího spojení. 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).
Operace RIGHT JOIN se používá k vytvoření pravého vnějšího spojení. 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 do 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ě.