What is Self Join in SQL?|Self Join in SQL with multiple examples

In my previous article i have given different SQL Joins Interview Questions and answers with real life examples. In this article i would like to give you Self Join in SQL with multiple real life examples.In our day to day industry examples we are using self joins.The self join is not only used for adding business logic but also for reporting purpose in real life examples.The Self Join is nothing but the Table is joining with itself to achieve the specific purpose.

Self Join in SQL is table which is joined with itself

Self Join Syntax and examples :

In this section i would like to give you Self Join Syntax with real life industry examples.This join allows to join table to itself with using the concept of aliases,This Join is useful in two different scenarios:

1.Self Join is used to Fetch the Hierarchical data

2.Self Join is used to compare values in same table.

Syntax :

Select Column_name1,Column_name2….Column_name ‘N’ From

Table_Name alias,Table_Name alias where Condition of Self Join;

In Syntax the Table_Name is same table name.

User can not only used the this join to connect table with inner join but also with left outer join as well.

I would like to explain you different examples,

Example 1 : Fetching Hierarchical data

The self join is used to fetch the Hierarchical data.But make sure that the table has that structure.

Lets consider the following example,

Table_name : Employee

Employee ID Employee Name Managner Id Salary
1 Amit 6 50000
2 Romi 1 15000
3 Deepti 1 15000
4 Rahul 6 40000
5 Pintoo 1 15000
6 Shweta   75000

Question : I would like to fetch the Employee_Name with its Manager_Name. If the Employee has no Manager then it will show output as no Manager.

I would like to use the modular way of query writing,

Step 1 : Check for Employee and Manager Data

Select Employee_Name,Employee_Id,Manager_Id from Employee;

Step 2 : Use of Aliases and join tables

Select a.Employee_Name,b.Employee_Name ‘Manager_Name’ from Employee a , Employee b where a.Employee_Id=b.Employee_Id;

Step 3: Use of Left Outer join and case statement to fetch Manager name and if Manager is not there show that ‘No Manager’

Select a.Employee_Name,Case when b.Manager_Id is not null then b.Employee_Name else ‘No Manager’ As ‘Manager Name’ from Employee a,Employee b where a.Employee_Id=b.Manager_id(+);

Answer :

Select a.Employee_Name,Case when b.Manager_Id is not null then b.Employee_Name else ‘No Manager’ As ‘Manager Name’ from Employee a,Employee b where a.Employee_Id=b.Manager_id(+);

Output :

Employee Name Manager Name
Amit Shweta
Romi Amit
Deepti Amit
Rahul Shweta
Pintoo Amit
Shweta No Manager

Using this we have fetched the Hierarchical data. We need Hierarchical data sometimes in creating the reports.

Example 2 : Comparing Values in Database

The self join is also used to compare the values in database. If User wants to find the data like Manager_Name with its reportee name then also user needs to use join,

Step 1 : Check for Manager Data

Select Employee_Name,Manager_Id from Employee;

Step 2 : Finding Manager_Name and Employee_Name as Reporter of that manager.

Select a.Employee_Name as ‘Manager_Name’,b.Employee_Name as ‘Reporter’ From Employee a, Employee b where a.manager_id=b.employee_id(+);

Output :

Manager_Name Reporter
Shweta Amit
Amit Romi
Amit Deepti
Shweta Rahul
Amit Pintoo

These are different examples of Self join with real life industry examples. I am hoping that you will get exact idea about it. If you like this article or if you have any issues with the same kindly comment in comments section.

Amit S

Oracle Consultant with vast experience in Oracle BI and PL/SQL Development. Amiet is the admin head of this website who contributes by preparing tutorials and articles related to database technologies. He is responsible to manage the content and front-end of the website.

Recent Posts

What is Root Cause Analysis (RCA) With real examples

In my previous article I have given details about application support engineer day to day…

4 weeks ago

Application Support Engineer Day to day responsibilities

In my previous articles I have given the roles and responsibilities of L1,L2 and L3…

1 month ago

What is mean by SLA ( Service Level Agreement) with Examples?

In my previous articles i have given the hierarchy of production support in real company…

1 month ago

What is Production support Hierarchy in organization?

In this article i would like to provide information about production support organization structure or…

1 month ago

What are roles and responsibilities for L3 Support Engineer?

In my previous article I have given roles for L1 and L2 support engineer with…

1 month ago

What are roles and responsibilities of L2 Engineer?

I have started this new series of how to become application support engineer. This article…

1 month ago