Reviewed by Aditya Kumar · Last reviewed 2026-03-24
Self-join pairs employee with manager: SELECT e.employee_id, e.name, e.salary, m.salary AS manager_salary FROM employees e JOIN employees m ON e.manager_id = m.employee_id WHERE e.salary > m.salary. **Why self-join**: Hierarchical data in one table. **Edge case**: CEO has...
Self-join pairs employee with manager: SELECT e.employee_id, e.name, e.salary, m.salary AS manager_salary FROM employees e JOIN employees m ON e.manager_id = m.employee_id WHERE e.salary > m.salary. Why self-join: Hierarchical data in one table. Edge case: CEO has manager_id NULL—excluded by INNER JOIN. Use LEFT JOIN + WHERE manager_id IS NOT NULL if CEO shouldn't appear. Performance: Index on manager_id.
Red Flag: Forgetting CEO/root in hierarchy—clarify with interviewer. Pro-Move: 'We added AND e.manager_id IS NOT NULL to exclude root; included CEO in separate reporting logic.'
According to DataEngPrep.tech, this is one of the most frequently asked SQL interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.