@Roman_Gy

Как вывести из таблицы список руководителей с количеством их подчиненных?

Подскажите, пожалуйста, каким образом можно вывести список руководителей с количеством их подчиненных из таблицы вида:
5e622d278c12d094137628.png

Получился такой запрос, но проблема в том, что он не выводит тех руководителей, у которых подчиненных нет.
SELECT
  m.name,
  m.position,
  COUNT(e.name) AS number_of_subordinates
FROM
  employees as e
  JOIN employees as m
  ON e.manager_id = m.id
GROUP BY m.name;


И небольшой сопутствующий вопрос - пытаюсь вывести список вида "Сотрудник - Руководитель", отображаются все записи кроме записи сотрудников, для которых не указаны руководители.
SELECT e.name as Employee, e.position as Position, m.name as Manager
FROM employees e,
     employees m
WHERE e.manager_id = m.id;
  • Вопрос задан
  • 2490 просмотров
Решения вопроса 1
Попробуйте

SELECT
    m.name,
    m.position,
    COUNT(e.name) AS number_of_subordinates
FROM
    employees as e
    RIGHT JOIN employees as m
    ON e.manager_id = m.id
GROUP BY m.name
WHERE m.is_manager = 1


SELECT 
    e.name as Employee, 
    e.position as Position, 
    m.name as Manager
FROM
    employees as e
    LEFT JOIN employees as m
    ON e.manager_id = m.id
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы