एक self-join एक join है जहाँ एक table को स्वयं से join किया जाता है — तब उपयोगी जब किसी table की rows उसी table की अन्य rows से संबंधित होती हैं, जैसे hierarchies (employees और उनके managers) या किसी table के भीतर rows की तुलना करना।
क्लासिक उदाहरण: employees और managers
employees table — manager_id references another employee's id (in the SAME table):
id | name | manager_id
1 | Ann | NULL (Ann is the boss)
2 | Bob | 1 (Bob's manager is Ann)
3 | Carol | 1 (Carol's manager is Ann)
e.name employee, m.name manager
employees e
employees m e.manager_id m.id;
