sql - SQL 根据 id 从一个表更新到另一个表
问题描述
我有一个包含 2 个表的数据库 -Employees
和Group
.
有这些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
例如前一个)并在表中更新。EmployeeId
Group
GroupId
Employees
最终结果应该是这样的:
+-----+------+---------+
| Id | Name | GroupId |
+-----+------+---------+
| 123 | abc | g01 |
| 456 | def | g02 |
+-----+------+---------+
如果您对此有任何解决方案,请告诉我。谢谢!
我正在使用 SQL Server。
解决方案
此查询将从 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
推荐阅读
- javascript - XMLHttpRequest 函数仅在最后一次调用时返回数据
- flutter - 如何在颤动中动态更改文本?
- performance-testing - 加特林循环中基于条件的退出
- tesseract - 提高微调 Tesseract 4 tessdata 文件的速度
- swift - 将多个键快速映射到单个编码键
- javascript - 将附加实例限制在动态内容上
- c++ - C++ 重载 << 运算符
- reactjs - npm 错误!意外的令牌 < 在 JSON 中的位置 0 解析时靠近 '
我正在尝试在命令行上安装 react
npm install react --save
并收到错误消息npm ERR! Unexpected token < in JSON at position 0 while parsing near '<!doctype html><htm...'
- imagemagick - 将 ColorToAlpha 精确复制到 MagickCore
- typescript - Firebase task.getResult().getData(); 总是返回 null。(异步问题?)