SQL: Как самостоятельно ссылаться на столбец в операторах обновления? - PullRequest
4 голосов
/ 21 ноября 2011

У меня есть две таблицы с этими столбцами:

Пользователи: пользователь, класс, класс, местоположение.

Классы: класс, местоположение

Столбец класса пользователейтаблица ссылается на тот же столбец в таблице Classes.

Я хочу обновить все строки в таблице Users таким образом, чтобы каждая строка столбца "location" таблицы Users была равна местоположению класса.

Итак, у меня есть строка со значениями: Mike, Math, A +, New York

И соответствующая строка в таблице классов для Math: Math, Chicago

Я хочу строку таблицы пользователястать Майком, Математикой, А +, Чикаго.

Спасибо

Ответы [ 3 ]

3 голосов
/ 21 ноября 2011

Как насчет этого:

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
 ;
3 голосов
/ 21 ноября 2011
update
  users
set
  users.location = classes.location
from
  classes
where
  classes.class = users.class
1 голос
/ 22 ноября 2011
update users a
    set a.location =
     (select b.location 
      from classes b
      where b.class = a.class) 
...