Dieses Oracle SQL-Tutorial konzentriert sich auf die Selbstverknüpfung in Oracle und bietet Syntax, Erklärungen und Beispiele
Ein Self-Join in Oracle ist ein Join der Oracle-Tabelle mit sich selbst. Wir können die Tabelle mehrmals verwenden. Jedes Vorkommen sollte einen Aliasnamen haben. Die Oracle-Datenbank verbindet während der Ausführung der Abfrage die Tabelle mit sich selbst und erzeugt das Ergebnis
General syntax
select a.col1 ,b.col2 from mytable a,mytable b where <join condition> ;
Some Self Join in Oracle Beispiel
(1) Darstellung hierarchischer Daten
Wir haben eine Mitarbeitertabelle und möchten den Mitarbeiternamen und den Managernamen für alle Mitarbeiter angeben. Wir haben auch einen Präsidenten, der niemandem Bericht erstattet, um ihn in der Abfrage zu zeigen
Die folgende Abfrage mit Self Join mit Outer Join, um die Daten im gewünschten Format zu extrahieren
Hier sind einige der Punkte, die es wert sind, bei der obigen Abfrage beachtet zu werden
a. Für das mehrfache Vorkommen der Tabelle EMP
haben wir unterschiedliche Aliasnamen verwendetb. Wir haben Left Outer Join verwendet, um auch die Präsidenteninformationen anzuzeigen
(2) Ein weiteres Beispiel zum Extrahieren der Mitarbeiterinformationen mit demselben Einstellungsdatum
(3) Wir können Self-Join verwenden, um die Zeilen in der Spalte zu transponieren zudem. Wir haben eine customer_bill-Tabelle, die mehrere Zeilen für die Zeilen für verschiedene Monate im Jahr hat, und wir möchten den Rechnungsbetrag für verschiedene Monate im Spaltenformat anzeigen
Desc customer_bill
--------------
Customer_id Varchar2(10)
bill_amount Number
bill_month Varchar2(10)
Tabellenabfrage
select Customer_id,bill_amount,bill_month from customer_bill where customer_id=1111;
Abfrage zum Transponieren von Zeilen in Spalten
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;
In ähnlicher Weise können wir den Self Join in Oracle mehrfach verwenden. Bitte lassen Sie mich wissen, ob Ihnen dieser Beitrag gefällt
Verwandte Artikel
Oracle-SQL-Join:Was sind Oracle-Joins mit Beispielen (Sql-Joins), verschiedene Arten von Joins, Inner Join, Outer Join, Left Outer Join, Right Outer Join, Cross Join mit Beispielen
Oracle Join-Syntaxbeispiele :In diesem Beitrag finden Sie Beispiele für Oracle-Join-Syntax für Inner Join, Cross Join, Outer Join, Left Outer Join, Right Outer Join. Sort Merge Join, Cartesian Join, Hash Join zum besseren Verständnis
Nested Loop Join in Oracle 11g :Auf dieser Seite finden Sie alle Details zu Nested Loop Join in Oracle, wie sich Nested Loop Join in Oracle 11g unterscheidet, wie verschachtelt Loop Join funktioniert in Oracle
Hash Join in Oracle:In diesem Beitrag finden Sie eine detaillierte Beschreibung des Hash Join in Oracle, wie er sich von Nested Loop Join in Oracle unterscheidet