【发布时间】:2022-01-02 04:43:06
【问题描述】:
我需要更新一个连接了两个表的列,但我很难理解它。这是针对 SQL Server 的。下面的松散示例...
用户
ID | Name | GroupID |
---------------------
1 | Bob | 100 |
2 | Alex | 300 |
3 | Sara | 300 |
组
ID | Name |
----------------
100 | Produce |
200 | Cashier |
300 | Stocker |
GroupID 是 Group 表的外键,它们正在被连接。我必须根据 Group 中的 Name 列更新 User 中的 GroupID 列。例如,我希望 Alex 和 Sara 从“Stocker”更改为“Cashier”。我的解决方案如下,但它似乎不起作用。
UPDATE User
SET User.GroupID = G.ID
FROM User U
JOIN Group G ON U.GroupID = G.ID
WHERE User = 'Sara' OR User = 'Alex'
预期结果
用户
ID | Name | GroupID |
---------------------
1 | Bob | 100 |
2 | Alex | 200 |
3 | Sara | 200 |
【问题讨论】:
-
你正在使用哪个数据库???
-
WHERE User = 'Sara' AND User = 'Alex' - 您如何设想这会返回任何行?用户不能同时是两个不同的值。
-
您在组中的名称和用户中的名称之间没有关系.. 尝试更好地解释.. 还添加预期结果
-
我真的不知道你在这里要做什么......“我希望 Alex 和 Sara 从 'Stocker' 变为 'Cashier'” -> 根据你的表没有意义。
-
@ScaisEdge SQL Server
标签: sql join sql-update