Some tables point to themselves, like an employees table where manager_id holds another employee's id. A self join joins the table with itself using two aliases, so one row can be compared with a related row. Use it for employee and manager pairs or for comparing rows within one table. Without separate aliases the query cannot tell the two copies apart, so always name them clearly.