思路1
因为可能用相同的情况,所以不能直接GROUP + MAX来选。
找到每个项目中最长year的year数,并同project_id一起返回
SELECT p.project_id, MAX(e.experience_years) AS experience_years
FROM Project p JOIN Employee e
ON p.employee_id=e.employee_id
GROUP BY p.project_id;
在联机两表,找到experience_years=MAX(experience_years)的员工即可 联结两表是为了获取那个员工所在project的project_id
SELECT p.project_id, e.employee_id
FROM Project p JOIN Employee e
ON p.employee_id=e.employee_id
WHERE (p.project_id, e.experience_years)
IN (
SELECT p.project_id, MAX(e.experience_years) AS experience_years
FROM Project p JOIN Employee e
ON p.employee_id=e.employee_id
GROUP BY p.project_id
);
Last updated
Was this helpful?