文章目錄
-
- 1. 題目
- 2. 解題
1. 題目
項目表 Project:
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| project_id | int |
| employee_id | int |
+-------------+---------+
(project_id, employee_id) 是這個表的主鍵
employee_id 是員工表 Employee 的外鍵
複制
員工表 Employee:
+------------------+---------+
| Column Name | Type |
+------------------+---------+
| employee_id | int |
| name | varchar |
| experience_years | int |
+------------------+---------+
employee_id 是這個表的主鍵
複制
寫 一個 SQL 查詢語句,報告在每一個項目中經驗最豐富的雇員是誰。
如果出現經驗年數相同的情況,請報告所有具有最大經驗年數的員工。
查詢結果格式在以下示例中:
Project 表:
+-------------+-------------+
| project_id | employee_id |
+-------------+-------------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 4 |
+-------------+-------------+
Employee 表:
+-------------+--------+------------------+
| employee_id | name | experience_years |
+-------------+--------+------------------+
| 1 | Khaled | 3 |
| 2 | Ali | 2 |
| 3 | John | 3 |
| 4 | Doe | 2 |
+-------------+--------+------------------+
Result 表:
+-------------+---------------+
| project_id | employee_id |
+-------------+---------------+
| 1 | 1 |
| 1 | 3 |
| 2 | 1 |
+-------------+---------------+
employee_id 為 1 和 3 的員工在 project_id 為 1 的項目中擁有最豐富的經驗。
在 project_id 為 2 的項目中,employee_id 為 1 的員工擁有最豐富的經驗。
複制
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/project-employees-iii
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 先找出項目經驗最大的年數
- 再where過濾
# Write your MySQL query statement below
select project_id, employee_id
from Project left join Employee
using(employee_id)
where (project_id, experience_years) in
(
select project_id, max(experience_years) exp_years
from Project left join Employee
using(employee_id)
group by project_id
)
複制
389 ms