Таблица менеджера:
create table Manager(id integer, name varchar(100));
insert into Manager(id, name) values(1, "M1");
insert into Manager(id, name) values(2, "M2");
insert into Manager(id, name) values(3, "M3");
Таблица сотрудников вместе с идентификатором менеджера (m_id)
create table Employee(id integer, m_id integer, name varchar(100));
insert into Employee(id, m_id, name) values(11, 1,"E1");
insert into Employee(id, m_id, name) values(12, 1,"E2");
insert into Employee(id, m_id, name) values(13, 2,"E3");
Выполненный запрос:
select M.id, M.name, count(E.id) from Manager as M, Employee as E where E.m_id=M.id group by E.m_id, M.id, M.name;
Выход:
1 M1 2
2 M2 1
Ожидаемый результат:
1 M1 2
2 M2 1
3 M3 0
Пожалуйста, помогите мне, как включить менеджера M3 вместе с назначенным ему 0 сотрудником?
Вы должны использовать левое соединение
SELECT M.id, M.name, count(E.id) from Manager as M LEFT JOIN Employee as E ON E.m_id=M.id GROUP BY E.m_id, M.id, M.name;