enaking 2025-08-04 14:58 采纳率: 91.7%
浏览 4
已结题

求一个sql语句,数据填充

有Emp表和Dept表,其中Emp表有DeptId和DeptCode字段,Dept表里也有DeptId和DeptCode字段。Emp表DeptCode字段有数据,然后DeptId是空的,所以我现在需要求一段sql语句,根据Emp表DeptCode的数据去Dept表找对应DeptId值,然后填充到Emp表的DeptId。谢谢大家,急等!

  • 写回答

3条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-08-04 15:00
    关注

    让【宝码香车】来帮您解答,本回答参考DeepSeek编写,并整理提供。

    如果答案让您满意,请采纳、点赞、关注,非常感谢!
    .  
    每日一句正能量,让它带给您好心情:每朵花的绽放,都有自己的节奏。
    .  

    SQL语句:根据DeptCode填充Emp表的DeptId字段

    根据您的需求,您需要根据Emp表中的DeptCode字段值,从Dept表中查找对应的DeptId,然后更新Emp表中的DeptId字段。以下是实现这一需求的SQL语句:

    UPDATE Emp
    SET Emp.DeptId = Dept.DeptId
    FROM Emp
    INNER JOIN Dept ON Emp.DeptCode = Dept.DeptCode
    WHERE Emp.DeptId IS NULL;
    

    说明

    1. 这个SQL语句执行以下操作:
      • 通过INNER JOIN将Emp表和Dept表关联起来,关联条件是Emp.DeptCode = Dept.DeptCode
      • 只更新那些Emp.DeptId为NULL的记录
      • 将匹配到的Dept.DeptId值赋给Emp.DeptId
    1. 如果您使用的是MySQL,语法稍有不同:
    UPDATE Emp e
    JOIN Dept d ON e.DeptCode = d.DeptCode
    SET e.DeptId = d.DeptId
    WHERE e.DeptId IS NULL;
    
    1. 执行前建议先备份数据,或者可以先运行SELECT语句验证结果:
    SELECT e.*, d.DeptId AS NewDeptId
    FROM Emp e
    INNER JOIN Dept d ON e.DeptCode = d.DeptCode
    WHERE e.DeptId IS NULL;
    

    这样您可以在实际更新前确认哪些记录会被修改以及修改后的值是否正确。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月4日
  • 已采纳回答 8月4日
  • 创建了问题 8月4日