问题描述
我需要选择employee_id,manager_id,结果。结果应为真还是假取决于以下条件。
- 如果员工是某人的经理,则为真
- 如果员工有经理,则为真
我提出了一个查询,但是我需要知道是否还有其他更好的方法可以执行此查询。 这是我的查询
with manager as
(
select distinct manager_id from employee where manager_id is not null
)
select
e.employee_id,e.manager_id,m.manager_id,case when e.manager_id is not null then true
when m.manager_id is not null then true
else false
end as Result
from employee e left join manager m on e.employee_id = m.manager_id
结果应该是这样
解决方法
也许是这样的:
select
e.employee_id,e.manager_id,(
e.manager_id is not null
or
exists(select 1 from employee m where m.manager_id=e.employee_id)
) as result
from employee e;