Вы можете попробовать это, используя join
.Помните, что при обновлении с помощью соединения вам необходимо определить имя таблицы как alias
, как показано ниже.
Declare @customer table
(name varchar(20),custno varchar(20),[address] varchar(20))
Insert into @customer (custno,[address])
values (1, 'Madrid')
Declare @class table
(custno varchar(20), accno varchar(20), accbalance int)
Insert into @class (custno,accno)
values (1,2)
Declare @transaction table
(accno varchar(20), accbalance int, [address] varchar(20))
Insert into @transaction (accno,accbalance)
values (2,2)
UPDATE t
SET [address] = c.[address]
FROM @transaction as t
INNER JOIN @class as cl on t.accno = cl.accno
INNER JOIN @customer as c
ON c.custno = cl.custno
select * from @transaction
Вывод такой, как показано ниже.
accno accbalance address
---------------------------
2 2 Madrid