Oracle
 sql >> Database >  >> RDS >> Oracle

Self join in Oracle con esempi

Questo tutorial su Oracle SQL si concentra sull'auto join in Oracle e fornisce sintassi, spiegazioni ed esempi

Un self join in Oracle è un join di Oracle Table a se stesso. Possiamo usare la tabella più volte. Ogni occorrenza dovrebbe avere un nome alias. Il database Oracle durante l'esecuzione della query unisci la tabella con se stessa e produce il risultato

General  syntax
select a.col1 ,b.col2  from mytable a,mytable b where <join condition> ;

Alcuni Self Join in Oracle Esempio

(1) Presentazione dei dati gerarchici

Abbiamo una tabella dei dipendenti e vogliamo specificare il nome del dipendente, il nome del manager per tutti i dipendenti. Abbiamo anche un Presidente che non fa rapporto a nessuno da mostrare nella query

La query seguente con self join con outer join per estrarre i dati nel formato desiderato

Ecco alcuni dei punti che vale la pena notare nella query di cui sopra

un. Abbiamo utilizzato alias diversi per l'occorrenza multipla della tabella EMP

b. Abbiamo utilizzato il join esterno sinistro per mostrare anche le informazioni sul presidente

(2) Un altro esempio per estrarre le informazioni sui dipendenti che hanno la stessa data di assunzione

(3) Possiamo usare l'unione automatica per trasporre le righe nella colonna anche. Abbiamo una tabella cliente_fattura che ha più righe per le righe per i diversi mesi dell'anno e vogliamo mostrare l'importo della fattura per i diversi mesi in formato colonna

Desc customer_bill
--------------
Customer_id Varchar2(10)
bill_amount Number
bill_month Varchar2(10)

query sulla tabella

select Customer_id,bill_amount,bill_month
from customer_bill where
customer_id=1111;

Query per trasporre le righe nella colonna

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;

Allo stesso modo possiamo avere molteplici usi del self join in Oracle. Per favore, fammi sapere se ti piace questo post

Articoli correlati
Oracle sql join:cosa sono Oracle Join con esempi (Sql join), Diversi tipi di join, Inner Join,Outer join,left external join,right external join,cross join con esempi
Esempi di sintassi di Oracle Join :Dai un'occhiata a questo post per esempi di sintassi di Oracle join su inner join, cross join, outer join, left outer join, right external join
Metodo di join in Oracle :Questo post spiega i vari metodi Plan Joins in Oracle, loop nidificato, sort merge join, join cartesiano, hash join per aiutare a capire
Nested Loop Join in Oracle 11g :dai un'occhiata a questa pagina per tutti i dettagli su Nested loop join in Oracle, in che modo Nested Loop Join in Oracle 11g è diverso, come nidificato loop join funziona in Oracle
Hash join in Oracle:dai un'occhiata a questo post per la descrizione dettagliata di Hash join in Oracle, come è diverso da Nested Loop join in Oracle