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 tabulce T1, jsou hodnoty sloupců z řádku tabulky T2 zkombinovány s hodnotou NULL pro každý sloupec řádku z tabulky T1, 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

.

admin

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

lg