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);
试图找到医生的基本详细信息(姓名、地址 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);