# Write your MySQL query statement below
1378. 使用唯一标识码替换员工ID
Employees
表:
+---------------+---------+ | Column Name | Type | +---------------+---------+ | id | int | | name | varchar | +---------------+---------+ id 是这张表的主键。 这张表的每一行分别代表了某公司其中一位员工的名字和 ID 。
EmployeeUNI
表:
+---------------+---------+ | Column Name | Type | +---------------+---------+ | id | int | | unique_id | int | +---------------+---------+ (id, unique_id) 是这张表的主键。 这张表的每一行包含了该公司某位员工的 ID 和他的唯一标识码(unique ID)。
写一段SQL查询来展示每位用户的 唯一标识码(unique ID );如果某位员工没有唯一标识码,使用 null 填充即可。
你可以以 任意 顺序返回结果表。
查询结果的格式如下例所示。
示例 1:
输入: Employees
表: +----+----------+ | id | name | +----+----------+ | 1 | Alice | | 7 | Bob | | 11 | Meir | | 90 | Winston | | 3 | Jonathan | +----+----------+EmployeeUNI
表: +----+-----------+ | id | unique_id | +----+-----------+ | 3 | 1 | | 11 | 2 | | 90 | 3 | +----+-----------+ 输出: +-----------+----------+ | unique_id | name | +-----------+----------+ | null | Alice | | null | Bob | | 2 | Meir | | 3 | Winston | | 1 | Jonathan | +-----------+----------+ 解释: Alice and Bob 没有唯一标识码, 因此我们使用 null 替代。 Meir 的唯一标识码是 2 。 Winston 的唯一标识码是 3 。 Jonathan 唯一标识码是 1 。
原站题解
pythondata 解法, 执行用时: 324 ms, 内存消耗: 60 MB, 提交时间: 2023-08-09 15:21:58
import pandas as pd def replace_employee_id(employees: pd.DataFrame, employee_uni: pd.DataFrame) -> pd.DataFrame: merged_df = employees.merge(employee_uni, on='id', how='left') merged_df = merged_df.drop(columns='id') return merged_df
mysql 解法, 执行用时: 676 ms, 内存消耗: 0 B, 提交时间: 2023-04-02 11:41:42
# Write your MySQL query statement below SELECT IFNULL(e2.unique_id, NULL) AS 'unique_id', e1.name AS 'name' FROM Employees AS e1 LEFT OUTER JOIN EmployeeUNI AS e2 ON e1.id = e2.id ;
mysql 解法, 执行用时: 708 ms, 内存消耗: 0 B, 提交时间: 2023-04-02 11:41:28
# Write your MySQL query statement below SELECT unique_id,name FROM employees e LEFT JOIN employeeuni en ON e.id = en.id;