Deze Oracle SQL-tutorial richt zich op zelf-deelname in Oracle, en biedt syntaxis, uitleg, voorbeelden
Een self-join in Oracle is een join van Oracle Table aan zichzelf. We kunnen de tabel meerdere keren gebruiken. Elke instantie moet een aliasnaam hebben. Oracle-database terwijl de query wordt uitgevoerd, voeg de tabel samen met zichzelf en produceer het resultaat
General syntax
select a.col1 ,b.col2 from mytable a,mytable b where <join condition> ;
Sommige zelf-lidmaatschap in Oracle-voorbeeld
(1) Presentatie van hiërarchische gegevens
We hebben een werknemerstabel en we willen de naam van de werknemer specificeren, de naam van de manager voor alle werknemers. We hebben ook een president die dat niet doet, noch rapporteert aan iemand die in de zoekopdracht kan worden weergegeven
De onderstaande query met self-join met outer join om de gegevens in het gewenste formaat te extraheren
Hier zijn enkele van de punten die de moeite waard zijn om op te letten bij de bovenstaande vraag
a. We hebben verschillende aliassen gebruikt voor het veelvuldig voorkomen van de tabel EMP
b. We hebben Left outer join gebruikt om de presidentinformatie ook te tonen
(2) Nog een voorbeeld om de werknemersinformatie te extraheren die dezelfde aanstellingsdatum hebben
(3) We kunnen self-join gebruiken om de rijen in de kolom te transponeren ook. We hebben een customer_bill-tabel met meerdere rijen voor de rijen voor verschillende maanden in het jaar en we willen het factuurbedrag voor verschillende maanden in kolomindeling weergeven
Desc customer_bill
--------------
Customer_id Varchar2(10)
bill_amount Number
bill_month Varchar2(10)
tabelquery
select Customer_id,bill_amount,bill_month from customer_bill where customer_id=1111;
Query om rijen naar kolommen te transponeren
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;
Op dezelfde manier kunnen we de self-join in Oracle meerdere keren gebruiken. Laat het me weten als je dit bericht leuk vindt
Gerelateerde artikelen
oracle sql join:wat zijn Oracle joins met voorbeelden (Sql-joins), verschillende soorten joins, inner join, outer join, left outer join, right outer join, cross join met voorbeelden
oracle join syntaxisvoorbeelden :Bekijk dit bericht voor oracle join-syntaxisvoorbeelden over inner join, cross join, outer join, left outer join, right outer join
Joins-methode in Oracle:dit bericht legt de verschillende Plan Joins-methoden uit in Oracle, geneste lus, sort merge join, Cartesian join, hash join om te helpen begrijpen
Nested Loop Join in Oracle 11g:bekijk deze pagina voor alle details over Nested Loop Join in Oracle, hoe Nested Loop Join in Oracle 11g anders is, hoe genest loop join werkt in oracle
Hash join in Oracle:Bekijk dit bericht voor de gedetailleerde beschrijving van hash join in Oracle, hoe het anders is dan geneste loop join in oracle