SQL:如何在更新语句中自引用列



我有两个表,其中有这些列:

用户:用户、班级、年级、地点

类:类,位置

Users表中的class列引用了Classes表中的同一列。

我想更新Users表中的所有行,使Users表中"location"列的每一行都等于类的位置。

所以我有一行值:Mike,数学,A+,纽约

对应的Math在Classes表中的行为:数学,芝加哥

我想让用户表的行变成迈克,数学,A+,芝加哥。

谢谢

update
  users
set
  users.location = classes.location
from
  classes
where
  classes.class = users.class

这个怎么样:

UPDATE U 
SET U.Location = C.Location
FROM Users AS U
INNER JOIN Classes AS C ON C.Class = U.Class
                AND C.Location != U.Location
 ;
update users a
    set a.location =
     (select b.location 
      from classes b
      where b.class = a.class) 

最新更新