Operace LEFT JOIN, RIGHT JOIN

Kombinují záznamy zdrojových tabulek v případě použití v libovolné klauzuli FROM.

Syntaxe

FROM tabulka1 [ LEFT | RIGHT ] JOIN tabulka2
ON tabulka1.pole1operátor_porovnání tabulka2.pole2

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

Část

Popis

tabulka1, tabulka2

Názvy tabulek, ze kterých jsou kombinovány záznamy.

pole1, pole2

Názvy polí, která jsou spojována. 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í operátor porovnání: =, <, >, <=, >= nebo <>.


Poznámky

Operaci LEFT JOIN lze použít k vytvoření Levé vnější spojení. V případě levého vnějšího spojení jsou zahrnuty všechny záznamy z první (levé) tabulky, a to i v případě, že ve druhé (pravé) tabulce pro tyto záznamy neexistují žádné odpovídající hodnoty.

Operaci RIGHT JOIN lze použít k vytvoření Pravé vnější spojení. V případě pravého vnějšího spojení jsou zahrnuty všechny záznamy ze druhé (pravé) tabulky, a to i v případě, že v první (levé) tabulce pro tyto záznamy neexistují žádné odpovídající hodnoty.

Pomocí operace LEFT JOIN použité na tabulky Departments (levá tabulka) a Employees (pravá tabulka) lze například vybrat všechna oddělení, včetně oddělení, kterým nejsou přiřazeni žádní zaměstnanci. Chcete-li naopak vybrat všechny zaměstnance, včetně zaměstnanců nezařazených do žádného oddělení, použijte operaci RIGHT JOIN.

Následující příklad obsahuje ukázku spojení tabulek Kategorie a Výrobky podle pole KódKategorie. Výsledkem dotazu je seznam všech kategorií, včetně těch, které neobsahují žádné výrobky:

SELECT NázevKategorie, NázevVýrobku FROM Kategorie LEFT JOIN Výrobky ON Kategorie.KódKategorie = Výrobky.KódKategorie;

KódKategorie představuje v tomto příkladu spojené pole. Není ale zahrnuto ve výsledku dotazu, protože není zahrnuto v příkazu SELECT. Pro zahrnutí spojeného pole vložte název pole do příkazu SELECT – v tomto případě Kategorie.KódKategorie.

Poznámka : 

Chcete-li vytvořit dotaz obsahující pouze záznamy, v jejichž případě jsou data ve spojovaných polích shodná, použijte operaci INNER JOIN.

  • Operace LEFT JOIN a RIGHT JOIN lze vnořit do operace INNER JOIN, operaci INNER JOIN však nelze vnořit do operace LEFT JOIN nebo RIGHT JOIN. Další informace o vnořování operací spojení do jiných operací spojení naleznete v poznámce o vnořování v tématu věnovanému operaci INNER JOIN.

  • Je možné spojovat více klauzulí ON. Další informace k této problematice naleznete v poznámce ke spojování klauzulí v tématu věnovanému operaci INNER JOIN.

Pokud se pokusíte spojit pole obsahující data Datový typ Memo nebo Datový typ Objekt OLE, dojde k chybě.



Sdílení Facebook Facebook Twitter Twitter E-mail E-mail

Byly tyto informace užitečné?

Výborně! Je ještě něco dalšího, co byste nám chtěli dát vědět?

Jak bychom ho mohli vylepšit?

Děkujeme vám za zpětnou vazbu.

×