MySQL找出每个部门年龄最大的员工
时间: 2024-09-09 19:09:39 浏览: 67
(009)《第五部分-练习题2:MySQL两表联合查询》
要在MySQL中找出每个部门内年龄最大的员工,你需要两个步骤:首先按部门筛选所有员工并找到每个部门的最大年龄,然后再次筛选出这些最大年龄对应的员工。假设你有两个表,一个是`employees`(包含`id`, `name`, `age`, 和 `department_id`等字段),另一个是`departments`(包含`id`和`name`)。这是一个可能的查询示例:
```sql
SELECT e1.id, e1.name, d.name as department_name, e1.age
FROM employees e1
JOIN departments d ON e1.department_id = d.id
JOIN (
SELECT department_id, MAX(age) as max_age
FROM employees
GROUP BY department_id
) e2 ON e1.department_id = e2.department_id AND e1.age = e2.max_age
ORDER BY e1.department_id;
```
这个查询做了以下事情:
1. `JOIN departments d ON e1.department_id = d.id` 将员工表与部门表连接,获取员工的部门信息。
2. 子查询`e2`计算每个部门的最大年龄。
3. 使用`JOIN ... ON e1.department_id = e2.department_id AND e1.age = e2.max_age` 来筛选出每个部门中年龄最大的员工。
阅读全文