You name it supervisor_id because the reports_to column contains ids, not names. Each row of this column contains an id representing the employee to whom the employee identified in the employee_id column reports to. So when you merge it to e2 and select e2.employee_id you are selecting the supervisor’s id.
With e2.reports_to you’d be selecting the id of the supervisor of the supervisor. e2 contains information about the supervisor. Therefore, to select the supervisor’s name you must use e2.first_name and that’s what you are asked in the exercise.
Because e1 is where you get the employee’s information, so to select the employee’s supervisor id you need to select e1.reports_to, not e2.reports_to. Then you merge e1.reports_to to e2 so you can select the supervisor’s information.
employee is a table containing all employees information, supervisors (they are also employees) are also included since they are also employees. Since this is a self join, we will assume that the first table employee AS e1 is a table about the normal employees employee AS e2 is a table about the supervisors now we want to join the two tables using e1.reports_to employee’s supervisor ID with e2.employee_id supervisors Employee ID.
Think of this as getting employees who are also supervisors.
in case you want to use reports_to in the SELECT statement then I think you’ll be referring to the one in e1 and not e2.