1. Мы подключаем одну таблицу два раза, БД работает как будто с разными таблицами (a и b).
таблицу a считаем за сотрудников
таблицу b за начальников, почему так:
2. Делаем связь между записями через b.id = a.chief_id
, тут говорится у сотрудника (а) есть шеф под chief_id, если chief_id не указан, значит это шеф, а значит в выборке он не участвует
3. Добавляется условие a.salary > b.salary
, что ЗП сотрудника(a) больше ЗП его начальника (b).
4. Если условия (where) удовлетворены, то select a.*
- выводим все данные сотрудника