查询每个经理的员工数(经理也为零)

egdjgwm8  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(379)

管理器表:

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");

employee表以及manager id(m\ U 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名员工?

shyt4zoc

shyt4zoc1#

你应该用左连接

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;

相关问题