暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

单挑力扣(LeetCode)SQL笔试题:1378. 使用唯一标识码替换员工ID(难度:简单)

跟强哥学SQL 2023-03-20
308
题目:1378. 使用唯一标识码替换员工ID
(通过次数10,520 | 提交次数12,098,通过率86.96%)
    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 。


    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/replace-employee-id-with-the-unique-identifier

      #测试数据
      Create table If Not Exists Employees (id int, name varchar(20));
      Create table If Not Exists EmployeeUNI (id int, unique_id int);


      insert into Employees (id, name) values ('1', 'Alice');
      insert into Employees (id, name) values ('7', 'Bob');
      insert into Employees (id, name) values ('11', 'Meir');
      insert into Employees (id, name) values ('90', 'Winston');
      insert into Employees (id, name) values ('3', 'Jonathan');


      insert into EmployeeUNI (id, unique_id) values ('3', '1');
      insert into EmployeeUNI (id, unique_id) values ('11', '2');
      insert into EmployeeUNI (id, unique_id) values ('90''3');
      解题思路:
      Employees表包含了所有的员工信息。包括员工ID、员工姓名。
      EmployeeUNI表包含员工的唯一标识码及员工ID。部分员工ID没有唯一标识码。
      题目要求:查询所有员工的唯一标识码及员工姓名。
      员工唯一标识码在EmployeeUNI表,员工姓名在Employees表,因此,需要将两张表关联。对于没有唯一标识码的员工,也需要返回NULL值,所以,需要使用左关联。
      参考SQL:
        select
        b.unique_id,
        a.name
        from Employees a
        left join EmployeeUNI b
        on a.id = b.id;

        单挑力扣(LeetCode)SQL笔试题:1322. 广告效果(难度:简单)
        单挑力扣(LeetCode)SQL笔试题:1327. 列出指定时间段内所有的下单产品(难度:简单)
        单挑力扣(LeetCode)SQL笔试题:1350. 院系无效的学生(难度:简单)


        笔试题合集免费领取方法


        方法一:关注公众号【跟强哥学SQL】,回复关键字【力扣】获取链接。

        方法二:访问【SQL网】:https://sql.wang/sql-leetcode/sql-exercise



        文章转载自跟强哥学SQL,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论