Souhrn: v tomto kurzu se naučíte používat RIGHT OUTER JOIN
v Oracle ke spojení dvou nebo více tabulek.
Přehled RIGHT OUTER JOIN v Oracle
Předpokládejme, že máme dvě tabulky T1
a T2
, následující příkaz ukazuje, jak tyto dvě tabulky spojit pomocí klauzule RIGHT OUTER JOIN
v Oracle:
V tomto příkazu jsou T1
a T2
levou, resp. pravou tabulkou.
Klíčové slovo OUTER
je nepovinné, proto jsou RIGHT OUTER JOIN
a RIGHT JOIN
stejné.
Podívejte se, jak funguje klauzule RIGHT OUTER JOIN
.
Každý řádek z tabulky T1
je porovnán s řádky z tabulky T2
:
- Pokud dvojice řádků splňuje predikát spojení, hodnoty sloupců obou řádků se spojí a vytvoří se výsledný řádek, který je pak zahrnut do výsledné množiny.
- V případě, že řádek v tabulce
T2
neodpovídá žádnému řádku v tabulceT1
, jsou hodnoty sloupců z řádku tabulkyT2
zkombinovány s hodnotou NULL pro každý sloupec řádku z tabulkyT1
, aby vznikl výsledný řádek, který je pak také zahrnut do výsledkové množiny.
Jinými slovy, pravé vnější spojení vrátí všechny řádky z pravé tabulky a také odpovídající řádky z levé tabulky.
Příklady RIGHT OUTER JOIN společnosti Oracle
Pro ukázku použijeme tabulky orders
a employees
v ukázkové databázi:
V tomto schématu má prodejce na starosti jednu nebo více prodejních objednávek. Některé prodejní zakázky však nemusí mít na starosti žádný prodejce.
Následující příklad vyhledá všechny prodejce a jejich případné prodejní zakázky:
Výsledek zahrnuje všechny zaměstnance, jejichž pracovní pozice je Sales Representative
, a jejich zakázky.
Pokud prodavač nemá na starosti žádnou prodejní zakázku, například Alice Wells
, Charlotte Webb
, sloupce order_id
a status
se vyplní hodnotami NULL.
Oracle RIGHT OUTER JOIN s klauzulí USING
Podobně jako u jiných spojování, například INNER JOIN
, LEFT JOIN
, můžete pomocí klauzule USING
určit, který sloupec se má při spojování tabulek testovat na rovnost.
Následující příklad ilustruje syntaxi RIGHT OUTER JOIN
s klauzulí USING
:
V tomto dotazu musí být sloupce uvedené v klauzuli USING
uvedeny v obou tabulkách T1
a T2
.
Následující příkaz je ekvivalentní výše uvedenému:
Následující příkaz demonstruje použití RIGHT OUTER JOIN
s klauzulí USING
:
V tomto příkladu jsou v souboru výsledků zahrnuti všichni zákazníci. Pokud zákazník nemá objednávku, jsou sloupce order_id
a status
vyplněny hodnotami NULL.
Oracle RIGHT JOIN: podmínka v klauzuli ON vs. WHERE
Následující příkaz získá údaje o zaměstnanci a objednávce prodavače id 57. V případě, že zákazník nemá objednávku, jsou údaje o objednávce vyplněny hodnotami NULL.
Následující příkaz umístí podmínku do klauzule WHERE
místo do klauzule ON
:
Dotaz vrátil všechny zaměstnance, ale pouze zaměstnanec id 57 měl související údaje o zakázce.
Poznámka, že pokud jde o INNER JOIN
, podmínka umístěná v klauzuli ON
má stejný účinek jako podmínka umístěná v klauzuli WHERE
.
V tomto návodu jste se naučili používat RIGHT OUTER JOIN
v systému Oracle k dotazování na data z více tabulek.
- Pomohl vám tento návod?
- AnoNe
.