Operace INNER JOIN

Pomocí této operace lze kombinovat záznamy ze dvou tabulek na základě shodných hodnot ve společném poli.

Syntaxe

FROM tabulka1 INNER JOIN tabulka2 ON tabulka1.pole1operátor_porovnání tabulka2.pole2

Operace INNER JOIN má 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. Nejedná-li se o číselná pole, musí mít obě pole 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 INNER JOIN je možné použít ve všech klauzulích FROM. Tento typ spojení je nejběžnější. V případě vnitřního spojení jsou záznamy ze dvou tabulek zkombinovány, kdykoli pole společné pro obě tabulky obsahuje shodné hodnoty.

Pomocí operace INNER JOIN použité na tabulky Oddělení a Zaměstnanci lze vybrat všechny zaměstnance z jednotlivých oddělení. Chcete-li naopak vybrat všechna oddělení (i v případě, kdy do některého oddělení nejsou zařazeni žádní zaměstnanci) nebo všechny zaměstnance (i v případě, kdy nejsou zařazeni do žádného oddělení), vytvořte pomocí operace LEFT JOIN nebo RIGHT JOIN Vnější spojení.

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

Spojit lze dvě číselná pole s podobným datovým typem. Spojit lze například pole typu Datový typ Automatické číslo a Datový typ Long, protože tyto typy jsou si podobné. Spojit naopak nelze pole typu Datový typ Single a Datový typ Double.

Následující příklad obsahuje ukázku spojení tabulek Kategorie a Výrobky podle pole KódKategorie:

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

V předchozím příkladě je spojeným polem pole KódKategorie. Toto pole však není zahrnuto ve výstupu dotazu, protože není obsaženo v příkazu SELECT. Pro zahrnutí spojeného pole vložte do příkazu SELECT název pole – v tomto případě Kategorie.KódKategorie.

V příkazu JOIN lze propojit několik klauzulí ON. V tomto případě je syntaxe příkazu následující:

SELECT pole
FROM tabulka1 INNER JOIN tabulka2
ON tabulka1.pole1operátor_porovnánítabulka2.pole1 AND
ON tabulka1.pole2operátor_porovnánítabulka2.pole2) OR
ON tabulka1.pole3operátor_porovnánítabulka2.pole3)];

Příkazy JOIN je možné vnořovat. V tomto případě je syntaxe příkazu následující:

SELECT pole
FROM tabulka1 INNER JOIN
(tabulka2 INNER JOIN [( ]tabulka3
[INNER JOIN [( ]tabulka_x [INNER JOIN ...)]
ON tabulka3.pole3operátor_porovnánítabulka_x.pole_x)]
ON tabulka2.pole2operátor_porovnánítabulka3.pole3)
ON tabulka1.pole1operátor_porovnánítabulka2.pole2;

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.



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.

×