Tuesday, October 11, 2016

WHAT IS SELF JOIN AND WHY IS IT REQUIRED? : SQL SELF JOIN EXAMPLE

WHAT IS SELF JOIN AND WHY IS IT REQUIRED?
Self Join is the act of joining one table with itself.
Self Join is often very useful to convert a hierarchical structure into a flat structure
In our employee table example above, we have kept the manager ID of each employee in the same row as that of the employee. This is an example of how a hierarchy (in this case employee-manager hierarchy) is stored in the RDBMS table. Now, suppose if we need to print out the names of the manager of each employee right beside the employee, we can use self join. See the example below:
SELECT e.name EMPLOYEE, m.name MANAGER
FROM EMPLOYEE e, EMPLOYEE m
WHERE e.mgr_id = m.id (+)
EMPLOYEE
MANAGER
Pete
Hash
Darl
Hash
Inno
Hash
Robo
Hash
Tomiti
Robo
Anno
Robo
Privy
Robo
Meme
Pete
Bhuti
Tomiti
Hash

The only reason we have performed a left outer join here (instead of INNER JOIN) is we have one employee in this table without a manager (employee ID = 1). If we perform inner join, this employee will not show-up.

No comments:

Post a Comment