SQL:如何在update语句中自引用列?

时间:2011-11-21 19:56:16

标签: sql sybase

我有两个包含这些列的表:

用户: 用户,班级,年级,地点。

类: 班级,地点

Users表的class列引用Classes表中的相同colmn。

我想更新Users表中的所有行,以便Users表的“location”列的每一行都等于该类的位置。

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

Math的Classes表中的相应行是: 数学,芝加哥

我希望用户表的行成为 迈克,数学,A +,芝加哥。

由于

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

这个怎么样:

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
 ;

答案 2 :(得分:1)

update users a
    set a.location =
     (select b.location 
      from classes b
      where b.class = a.class)