SQL Quest › SQL Interview Questions › Joins
Employee + Manager Pairs (Self Join)
HR wants a flat report pairing each employee with their manager's name. The employees table is its own reference — manager_id points to a row in the same table. The cleanest way to express this is a self join with two aliases.
Show emp_name, department, manager_name. Include only employees who have a manager (manager_id IS NOT NULL). Order by department, then emp_name.
The alias trick: FROM employees e JOIN employees m ON e.manager_id = m.emp_id treats the table as two logical copies — e for the employee row, m for the matching manager row.
Solve it in the browser editor →
Runs on SQLite in your browser, graded against the expected result, no signup. A wrong answer gets a diagnosis, not just "incorrect".
Schema
employees
| emp_id | name | department | position | salary | hire_date | manager_id | performance_rating |
|---|---|---|---|---|---|---|---|
| 1 | Alice Johnson | Engineering | Senior Developer | 95000 | 2019-03-15 | 5 | 4.5 |
| 2 | Bob Smith | Engineering | Developer | 75000 | 2020-06-01 | 1 | 3.8 |
| 3 | Carol Williams | Marketing | Marketing Manager | 85000 | 2018-09-20 | NULL | 4.2 |
Expected output: Alice | Engineering | Bob
Hint
SELECT, JOIN, Self Join, and open the hint there if you stall.Concepts
SELECT JOIN Self Join Aliases
Practise the topic: SQL practice questions · JOIN practice
In these company practice sets
A SQL Quest challenge matched to patterns reported for these companies — not a question any of them has published.
Related questions
Where would this cost you points in an interview?
Ten questions, no signup: a Skillmap across nine SQL skills and the one to fix first.
Take the readiness test