Lesson 26/100

Tutorials SQL Server Tutorial

SELF JOIN — Complete Guide

SELF JOIN — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of SQL Server Tutorial on Toolliyo Academy.

On this page

SQL Server Tutorial · Lesson 26 of 100

SELF JOIN

SQL basicsQueriesAdvanced

SQL basics · 1 — SELECT · ~6 min · SQL — Joins & Relationships

What is this?

A self join uses the same table twice with different aliases — often for employee→manager or category→parent hierarchies.

Why should you care?

HR needs “who manages Priya?” when ManagerId points at another Employees.EmployeeId.

See it live — copy this example

Run in SQL Server Management Studio (SSMS) or Azure Data Studio.

USE DataVerse;
IF OBJECT_ID(N'dbo.Employees', N'U') IS NOT NULL DROP TABLE dbo.Employees;
CREATE TABLE dbo.Employees (
    EmployeeId INT PRIMARY KEY,
    FullName NVARCHAR(100) NOT NULL,
    ManagerId INT NULL
);
INSERT INTO dbo.Employees VALUES
 (1, N'Anita Rao', NULL),
 (2, N'Priya Shah', 1),
 (3, N'Rohan Das', 1);
SELECT e.FullName AS Employee, m.FullName AS Manager
FROM dbo.Employees AS e
LEFT JOIN dbo.Employees AS m ON m.EmployeeId = e.ManagerId;

What happened?

  • Alias e is the employee; alias m is the manager row from the same table.
  • LEFT JOIN keeps Anita who has no manager.

Practice next

  1. Create Employees and run the self join.
  2. Add another level (Rohan manages someone) and extend the query.
  3. Find employees whose manager name is Anita.
  4. Show ManagerId and manager email if you add Email.
  5. Count direct reports with GROUP BY ManagerId.

Remember

Self join = one table, two roles. Aliases are mandatory for clarity. Common for org charts and bill-of-materials.

Org chart in DataVerse HR

HR app resolves manager names via self join on Employees.

Outcome: Directory page shows Employee — Manager pairs.

Interview prep for this lesson

Practice these questions aloud after reading—each links to a full structured answer.

Mid PDF Detailed
INNER JOIN: Returns only the rows with matching values in both tables.?
Short answer: Use case: When you only want matching records. Say this in the interview Define — one clear sentence (the short answer above). Example — relate it to a project like ShopNest or your real work. Trade-off — w…
Mid PDF Detailed
FULL OUTER JOIN: Returns all rows from both tables, with matching rows where?
Short answer: available. If there’s no match, NULL is returned for the missing side. Use case: When you want all records from both tables. Say this in the interview Define — one clear sentence (the short answer above). E…
Mid PDF Detailed
What are the differences between SQL and NoSQL databases?
Short answer: SQL Databases (Relational Databases): These are structured databases that use Structured Query Language (SQL) for defining and manipulating data. Explain a bit more They store data in tables with rows and c…
Mid PDF Detailed
Query Performance:?
Short answer: Use EXPLAIN or QUERY PLAN to analyze query execution times and identify slow queries. Track metrics like response time, execution time, and query throughput. Real-world example (ShopNest) ShopNest adds an i…
Mid PDF Detailed
Start with 1NF: Ensure that the table has no repeating groups or arrays, and each?
Short answer: record has a unique identifier. Real-world example (ShopNest) Product and Category are separate tables (normalized). The order line stores product id + price snapshot—not a giant duplicated product blob. Sa…
Questions on this lesson 0

Sign in to ask a question or upvote helpful answers.

No questions yet — be the first to ask!

SQL Server Tutorial
Course syllabus

SQL Server Tutorial

SQL — Foundations
SQL — SQL Queries & Clauses
SQL — Joins & Relationships
SQL — Indexing & Performance
SQL — Stored Procedures & Functions
SQL — Transactions & Concurrency
SQL — Advanced SQL Server
SQL — Security & High Availability
SQL — 2022 & Cloud
SQL — Real-World Projects
Toolliyo Assistant
Ask about tutorials, ebooks, training, pricing, mentor services, and support. I use public site content only—not admin or internal tools.

care@toolliyo.com

Need callback? Share your details