Select 名员工,他们是经理但也在经理手下工作
Select employees, who are managers but also working under a manager
我正在尝试对 select 所有员工进行查询,他们既是经理,又在经理手下工作。
例如下面的例子table
id
name
manager_id
1
fresher
2
2
team lead
3
3
manager
null
我只想获得团队领导,作为我的 select 查询的结果,我尝试使用以下查询,但出现错误。我也不确定这是否是正确的做法。
select e.id, e.name, m.name as mgr_name,
case when EXISTS (select 1 from emps where emps.manager_id = e.id) then 1
else 0 end as isMgr
from emps e
join emps m on e.mgr_id = m.id
where e.manager_id is not null and e.isMgr = 1
错误:
Invalid column name 'isMgr'.
我只会使用 exists
和过滤:
select e.*
from emps e
where e.manager_id is not null and
exists (select 1
from e e2
where e2.manager_id = e.id
);
我正在尝试对 select 所有员工进行查询,他们既是经理,又在经理手下工作。
例如下面的例子table
id | name | manager_id |
---|---|---|
1 | fresher | 2 |
2 | team lead | 3 |
3 | manager | null |
我只想获得团队领导,作为我的 select 查询的结果,我尝试使用以下查询,但出现错误。我也不确定这是否是正确的做法。
select e.id, e.name, m.name as mgr_name,
case when EXISTS (select 1 from emps where emps.manager_id = e.id) then 1
else 0 end as isMgr
from emps e
join emps m on e.mgr_id = m.id
where e.manager_id is not null and e.isMgr = 1
错误:
Invalid column name 'isMgr'.
我只会使用 exists
和过滤:
select e.*
from emps e
where e.manager_id is not null and
exists (select 1
from e e2
where e2.manager_id = e.id
);