SQL MAX(dob) 不在带条件的内部连接中返回

SQL MAX(dob) not returning in inner join with conditions

试图找到医生的基本详细信息(姓名、地址 phone 等),他们是在诊所工作的最年轻的医生,而且还没有辞职。

我浏览了论坛,发现最好的方法是使用内部联接,但现在它根本不返回任何信息。

select doctorid, surname, given, address, suburb, postcode, phone
from doctor 
inner join (
        select max(dob)
        from doctor
        where resigned is null);

此代码无效,如有任何帮助,我们将不胜感激。

inner join 需要一个 on 子句:

from doctor 
inner join (
    select max(dob) as max_dob
    from doctor
    where resigned is null) filter
on filter.max_dob = doctor.dob

试试这个:

   select d1.doctorid, d1.surname, d1.given, d1.address, 
   d1.suburb, d1.postcode, d1.phone
   from doctor d1 join doctor d2
   on d1.doctorid<> d2.doctorid and d1.dob>=d2.dob
   group by d1.doctorid
   having count(*)= (select count(*)-1 from doctor);