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