MySQL查询出最老员工的经理

MySQL查询出最老员工的经理,mysql,Mysql,我正在phpMyAdmin内的一个数据库上工作 我正在寻找一个将生成最老员工的经理的查询 我将为此链接不同的数据库 第一个数据库称为person,具有以下字段: [firstname] [surname] [DOB] [person_id] [line_manager_id] 第二个数据库名为manager\u allocation,我想使用以下字段: [firstname] [surname] [DOB] [person_id] [line_manager_id] 要从表person中

我正在phpMyAdmin内的一个数据库上工作

我正在寻找一个将生成最老员工的经理的查询

我将为此链接不同的数据库

第一个数据库称为
person
,具有以下字段:

[firstname]
[surname]
[DOB]
[person_id]
[line_manager_id]
第二个数据库名为
manager\u allocation
,我想使用以下字段:

[firstname]
[surname]
[DOB]
[person_id]
[line_manager_id]

要从表
person
中获取最老的员工,可以使用如下查询:

select personid, firstname, surname, DOB
from person
order by DOB desc
limit 1
select personid, firstname, surname, DOB
from person
where DOB = (select min(dob) from person)
select line_manager_id
from manager_allocation
where
  person_id IN (
    select personid from person
    where DOB = (select min(dob) from person)
  )

如果您想考虑不止一个人具有相同的DOB,则查询将是这样的:

select personid, firstname, surname, DOB
from person
order by DOB desc
limit 1
select personid, firstname, surname, DOB
from person
where DOB = (select min(dob) from person)
select line_manager_id
from manager_allocation
where
  person_id IN (
    select personid from person
    where DOB = (select min(dob) from person)
  )
要返回经理(如果有多人共享最大年龄,则返回经理),可以使用以下查询:

select personid, firstname, surname, DOB
from person
order by DOB desc
limit 1
select personid, firstname, surname, DOB
from person
where DOB = (select min(dob) from person)
select line_manager_id
from manager_allocation
where
  person_id IN (
    select personid from person
    where DOB = (select min(dob) from person)
  )

您可以使用min或max函数获取最早或最新的日期

select line_manager_id from person inner join manager_allocation on person.person_id=manager_allocation.person_id where DOB=(select min(DOB) from person)

您为最老的员工编写一个查询,获取他们的ID,并将其用作选择经理信息的子查询。请注意,您调用的
数据库
实际上是
。而称为字段的是列,尽管这是一个微妙的区别。