请告知SQL Update问题

时间:2011-12-30 07:41:51

标签: sql select

我有一个带有两个表的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

依旧......

2 个答案:

答案 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 )以检查您要更改的内容(值之前和之后)。