oracle
  1. oracle-self-join

Self Join - (Oracle Joins)

In Oracle SQL, a self-join is a join operation in which a table is joined with itself. The purpose of self-joins is to combine rows from the same table based on a common attribute. This can be useful for tasks such as finding hierarchical relationships in a table.

Syntax

The syntax for a self-join in Oracle SQL is as follows:

SELECT t1.column_name, t2.column_name
FROM table_name t1, table_name t2
WHERE t1.common_column = t2.common_column;

Here, table_name is the name of the table being self-joined, and column_name is the name of the column being selected from each instance of the table. The common_column is the column that is being used to join the table with itself.

Example

Consider the following "employees" table:

emp_id emp_name mgr_id
1 Alice 3
2 Bob 3
3 Charlie 4
4 David NULL
5 Eve 4

We can use a self-join to find the names of employees and their respective managers:

SELECT emp.emp_name, mgr.emp_name AS mgr_name
FROM employees emp, employees mgr
WHERE emp.mgr_id = mgr.emp_id;

Output

emp_name mgr_name
Alice Charlie
Bob Charlie
Charlie David
Eve David

Explanation

In the above example, we have used a self-join to join the "employees" table with itself based on the mgr_id column. We have selected the employee name from the first instance of the table (emp) and the manager name from the second instance of the table (mgr). We have used the WHERE clause to link the two instances of the table based on the mgr_id column.

Use

Self-joins can be useful for finding hierarchical relationships in a table, such as managers and their employees. They can also be used to find relationships between records in a single table, such as finding all pairs of employees who share the same manager.

Important Points

  • A self-join is a join operation in which a table is joined with itself.
  • Self-joins are useful for finding hierarchical relationships in a table.
  • The syntax for a self-join in Oracle SQL involves selecting columns from two instances of the same table and linking them based on a common column.

Summary

In summary, a self-join in Oracle SQL involves joining a table with itself based on a common column. Self-joins can be useful for finding hierarchical relationships in a table and are a powerful tool for querying complex data structures.

Published on: