Tento výukový program Oracle SQL se zaměřuje na vlastní připojení v oracle a poskytuje syntaxi, vysvětlení a příklady
Vlastní spojení v Oracle je spojení tabulky Oracle se sebou samým. Tabulku můžeme použít vícekrát. Každý výskyt by měl mít název aliasu. Databáze Oracle při provádění dotazu spojí tabulku se sebou samým a vytvoří výsledek
General syntax
select a.col1 ,b.col2 from mytable a,mytable b where <join condition> ;
Některé vlastní připojení v příkladu Oracle
(1) Prezentace hierarchických dat
Máme tabulku zaměstnanců a chceme zadat jméno zaměstnance, jméno manažera pro všechny zaměstnance. Máme také prezidenta, který se nikomu nehlásí ani se nikomu nezobrazuje v dotazu

Níže uvedený dotaz s vlastním spojením s vnějším spojením pro extrahování dat v požadovaném formátu

Zde jsou některé z bodů, které stojí za povšimnutí výše uvedeného dotazu
A. Pro vícenásobný výskyt tabulky EMP
jsme použili jiný aliasb. Použili jsme levé vnější spojení k zobrazení informací o prezidentovi také
(2) Další příklad pro extrakci informací o zaměstnancích, kteří mají stejné datum nástupu

(3) K transponování řádků ve sloupci můžeme použít vlastní spojení taky. Máme tabulku customer_bill, která má několik řádků pro řádky pro různé měsíce v roce a my chceme zobrazit částku faktury za jiný měsíc ve formátu sloupců
Desc customer_bill
--------------
Customer_id Varchar2(10)
bill_amount Number
bill_month Varchar2(10)
dotaz na tabulku
select Customer_id,bill_amount,bill_month from customer_bill where customer_id=1111;

Dotaz na transpozici řádků do sloupce
select a.customer_id , b.bill_amount Jan-amount , c.bill_amount Feb-amount , c.bill_amount Mar-amount from customer_bill a ,customer_bill b, customer_bill c where a.customer_id=b.customer_id , b.customer_id =c.customer_id and a.bill_month='JAN' and b.bill_month='FEB' and c.bill_month='MAR' and a.customer_id=1111;

Podobně můžeme mít více použití vlastního připojení v oracle. Dejte mi prosím vědět, jestli se vám tento příspěvek líbí
Související články
spojení Oracle sql:Co jsou spojení Oracle s příklady (spojení SQL), Různé typy spojení, Vnitřní spojení,Vnější spojení,levé vnější spojení,pravé vnější spojení,křížové spojení s příklady
Příklady syntaxe spojení Oracle :Podívejte se na tento příspěvek, kde najdete příklady syntaxe spojení Oracle na vnitřní spojení, křížové spojení, vnější spojení, levé vnější spojení, pravé vnější spojení
Metoda spojení v Oracle:Tento příspěvek vysvětluje různé metody spojení plánu v Oracle, vnořená smyčka, sort merge join, kartézské spojení, hash join pro lepší pochopení
Připojení Nested Loop v Oracle 11g :Podívejte se na tuto stránku, kde najdete všechny podrobnosti o spojení Nested Loop v Oracle, jak se Nested Loop Join v Oracle 11g liší, jak je vnořené Loop join funguje v oracle
Hash join v Oracle:Podívejte se na tento příspěvek pro podrobný popis Hash join v Oracle, Jak se liší od Nested Loop join v oracle