我有一个带有两个表的SQL数据库
TableA (ID, State, Value
)
1 England 20
2 France 50
3 USA 40
4 ........
5 ........
和
TableB (ID, username, age, stateID
)
1 John 15 1
2 Adam 20 2
3 Jane 40 3
4 Scott 50 1
5 Edwin 60 2
6 Alex 20 3
7 Olsen 30 1
8 ...........
9 ...........
我需要的是通过设置所有用户的年龄来更新TableB
England
到20 France
到50 依旧......
答案 0 :(得分:3)
update tableB
set age = (select tableA.value from tableA where tableA.StateID=TableB.id)
答案 1 :(得分:2)
我喜欢以下表格:
update b set
age = a.value
from tableB b
join tableA a on a.id = b.stateId
因为您可以这样写(最后在SQL Server Management Studio中):
update b set
age = a.value
--select b.age, a.value, b.*, a.*
from tableB b
join tableA a on a.id = b.stateId
然后突出显示从select ...
到查询结尾的部分并执行它( F5 )以检查您要更改的内容(值之前和之后)。