Oracle
 sql >> Base de données >  >> RDS >> Oracle

Auto-jointure dans oracle avec des exemples

Ce tutoriel Oracle SQL se concentre sur l'auto-jointure dans Oracle et fournit une syntaxe, des explications et des exemples

Une jointure automatique dans Oracle est une jointure d'une table oracle à elle-même. Nous pouvons utiliser la table plusieurs fois. Chaque occurrence doit avoir un nom d'alias. La base de données Oracle lors de l'exécution de la requête associe la table à elle-même et produit le résultat

Syntaxe générale 
sélectionnez a.col1 ,b.col2  dans mytable a,mytable b où ;

Exemple d'auto-jointure dans Oracle

(1) Présentation des données hiérarchiques

Nous avons une table d'employés et nous voulons spécifier le nom de l'employé, le nom du responsable pour tous les employés. Nous avons également un président qui ne rend compte à personne pour l'afficher dans la requête

La requête ci-dessous avec auto-jointure avec jointure externe pour extraire les données au format souhaité

Voici quelques-uns des points qui méritent d'être notés dans la requête ci-dessus

un. Nous avons utilisé différents alias pour l'occurrence multiple de la table EMP

b. Nous avons utilisé la jointure externe gauche pour afficher également les informations du président

(2) Un autre exemple pour extraire les informations sur les employés qui ont la même date d'embauche

(3) Nous pouvons utiliser l'auto-jointure pour transposer les lignes en colonne aussi. Nous avons une table customer_bill qui comporte plusieurs lignes pour les lignes de différents mois de l'année et nous souhaitons afficher le montant de la facture pour différents mois au format colonne

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

requête de table

select Customer_id,bill_amount,bill_monthfrom customer_bill wherecustomer_id=1111 ;

Requête pour transposer les lignes en colonne

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 et a.bill_month='JAN' et b.bill_month='FEB' et c.bill_month='MAR' et a.customer_id=1111 ;

De même, nous pouvons avoir plusieurs utilisations de l'auto-jointure dans Oracle. N'hésitez pas à me dire si vous aimez cet article

Articles connexes
Oracle sql join :Qu'est-ce qu'Oracle Joins avec des exemples (Sql joins), Différents types de jointures, Inner Join,Outer join,left outer join,right external join,cross join with examples
Oracle join syntax examples :Consultez cet article pour des exemples de syntaxe de jointure oracle sur la jointure interne, la jointure croisée, la jointure externe, la jointure externe gauche, la jointure externe droite
Joins Method in Oracle :Cet article explique les différentes méthodes Plan Joins dans Oracle, boucle imbriquée, trier la jointure de fusion, jointure cartésienne, jointure de hachage pour aider à comprendre la jointure de boucle fonctionne dans oracle