セルフジョインとは、テーブルをそのテーブル自身と結合することです。階層構造(社員と上司など)や、同じテーブル内の行同士を比較したい場合に役立ちます。
典型例: 社員と上司
text
employees テーブル — manager_id は同じテーブル内の別の employee id を参照する:
id | name | manager_id
1 | Ann | NULL (Ann は上司)
2 | Bob | 1 (Bob の上司は Ann)
3 | Carol | 1 (Carol の上司は Ann)
sql
SELECT
e.name AS employee,
m.name AS manager
FROM employees e
LEFT JOIN employees m ON e.manager_id m.id;
