我有一张名为employee的表。它包括经理和员工。还有生日专栏,我需要找到比他们的经理人更老的员工"。我该怎么做?你能给我一些线索吗?
答案 0 :(得分:1)
您可以在同一张桌子上使用inner join
:
select e.*
from employees e
inner join employees m
on e.managerid = m.id
and e.birthdate < m.birthdate
{p}或exists()
中的where
:
select e.*
from employees e
where exists (
select 1
from employees m
where e.managerid = m.id
and e.birthdate < m.birthdate
)
答案 1 :(得分:0)
如果您的员工结构如下:
id,
name,
birthdate,
manager_id
这可能是一个解决方案:
select id, name
from employees e
where
exists
(select *
from employees m
where
m.id = e.manager_id and
m.birthdate > e.birthdate);