Một self-join là một join trong đó một bảng được join với chính nó — hữu ích khi các dòng trong một bảng liên hệ với các dòng khác trong cùng bảng đó, chẳng hạn như cấu trúc phân cấp (nhân viên và quản lý của họ) hoặc so sánh các dòng trong một bảng.
Ví dụ kinh điển: nhân viên và quản lý
bảng employees — manager_id tham chiếu id của một nhân viên khác (trong CÙNG bảng):
id | name | manager_id
1 | Ann | NULL (Ann là sếp)
2 | Bob | 1 (quản lý của Bob là Ann)
3 | Carol | 1 (quản lý của Carol là Ann)
e.name employee, m.name manager
employees e
employees m e.manager_id m.id;
