更新加入 table 的列

Updating the column that the table was joined on

我需要更新一个包含两个 table 的专栏,但我很难全神贯注。这适用于 SQL 服务器。下面的松散示例...

用户

ID | Name | GroupID |
---------------------
1  | Bob  |   100   |
2  | Alex |   300   |
3  | Sara |   300   |

ID   |   Name  | 
----------------
100  | Produce |
200  | Cashier |
300  | Stocker |

GroupID 是群组 table 的外键,他们正在加入群组。我必须根据 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   |

您不需要并更新了 join .. 但您可以使用子查询从组

中获取预期的 ID
update user 
set User.GroupID = (select id 
from group where name = 'Cashier )
where User = 'Sara' OR User = 'Alex'