首页 > 解决方案 > SQL 根据 id 从一个表更新到另一个表

问题描述

我有一个包含 2 个表的数据库 -EmployeesGroup.

有这些Employees列:

Id (primary key), Name, GroupId

Group有这些列:

Id (primary key), EmployeeId (foreign key), GroupId

这是Employees表格:

+-----+------+---------+
| Id  | Name | GroupId |
+-----+------+---------+
| 123 | abc  | 000     |
| 456 | def  | 000     |
+-----+------+---------+

这是Group表格:

+-----+------------+---------+
| Id  | EmployeeId | GroupId |
+-----+------------+---------+
| pqr | 456        | g01     |
| uvw | 123        | g02     |
| xyz | 123        | g03     |
+-----+------------+---------+

我需要从表中获取任何一个(GroupId例如前一个)并在表中更新。EmployeeIdGroupGroupIdEmployees

最终结果应该是这样的:

+-----+------+---------+
| Id  | Name | GroupId |
+-----+------+---------+
| 123 | abc  | g01     |
| 456 | def  | g02     |
+-----+------+---------+

如果您对此有任何解决方案,请告诉我。谢谢!

我正在使用 SQL Server。

标签: sqlsql-serverdatabase-migrationef-core-2.1

解决方案


此查询将从 Group 表中更新 Employee 表,并且 group 表的 PK 为整数

UPDATE e
   SET GroupId = g.GroupId
  FROM Employees e INNER JOIN 
        (SELECT EmployeeId, GroupId FROM [Group] ORDER BY Id DESC) g 
        ON e.Id = g.EmployeeId

推荐阅读