DEV Community

Pavol Z. Kutaj
Pavol Z. Kutaj

Posted on

Explaining self-join in SQL

The aim of this page๐Ÿ“ is to explain self-joins in SQL and how they can be used effectively.

  • Definition: A self-join is a regular join but the table is joined with itself.
  • Purpose: It is used to compare rows within the same table or to create a hierarchical structure.
  • Example Table: A healthcare_providers table with columns name, id, and supervisor_id.
  • Basic SQL Query:
  SELECT * 
  FROM healthcare_providers;
Enter fullscreen mode Exit fullscreen mode
  • Data Representation: Example data:
  โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
  โ”ƒ name    โ”ƒ id โ”ƒ supervisor_id โ”ƒ
  โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
  โ”‚ Alice   โ”‚  2 โ”‚          1    โ”‚
  โ”‚ Bob     โ”‚  3 โ”‚          1    โ”‚
  โ”‚ Carol   โ”‚  4 โ”‚          5    โ”‚
  โ”‚ David   โ”‚  5 โ”‚          NULL โ”‚
  โ”‚ Eve     โ”‚  1 โ”‚          5    โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Enter fullscreen mode Exit fullscreen mode
  • Self-Join Query:
  SELECT 
      e.name AS employee,
      s.name AS reports_to
  FROM healthcare_providers e
  LEFT JOIN healthcare_providers s ON e.supervisor_id = s.id
  ORDER BY s.name NULLS LAST;
Enter fullscreen mode Exit fullscreen mode
  • Explanation:
    • Aliases: e represents employees, s represents supervisors.
    • LEFT JOIN: Ensures all employees are listed, even if they don't have supervisors.
    • ON Clause: Links supervisor_id from e to id in s.
    • SELECT Clause: Retrieves employee names and their respective supervisor names.
    • ORDER BY: Sorts the result by supervisor names, keeping null values at the end.
  • Result:
  | employee | reports_to |
  |----------|------------|
  | Alice    | Eve        |
  | Bob      | Eve        |
  | Carol    | David      |
  | Eve      | David      |
  | David    | NULL       |
Enter fullscreen mode Exit fullscreen mode

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs