Při použití v libovolné klauzuli FROM slučuje záznamy ze zdrojových tabulek.
Syntaxe
FROM tabulka1 [ LEFT | RIGHT ] JOIN table2
ON tabulka1.pole1compopr tabulka2.pole2
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í 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 slouží 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).
Použijte operaci RIGHT JOIN 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.
- Operace LEFT JOIN a RIGHT JOIN můžou být vnořené uvnitř operace INNER JOIN, ale operace INNER JOIN nemůže být vnořená uvnitř operací LEFT JOIN a RIGHT JOIN. Pokud chcete zjistit, jak vnořovat spojení do jiných spojení, přečtěte si část o vnořování v tématu o operaci INNER JOIN.
- 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ě.