我有三个表,我想将特定类型的所有值更新为相同的值:
表1: id,ValueType
表2: id,Value
表3: id,fkValueTypeId,fkValueId
fkValueType引用table1中的ID。 fkValue引用表2中的ID
我正在尝试将所有Speed值设置为相同的值:
即
Table1:
0, speed
1, age
2, colour
Table2:
0, 10
1, 20
2, 30
3, 40
4, 18
5, 18
6, blue
7, black
8, orange
9, 33
10, 34
11, 35
Table3:
0, 0, 0 --Speed = 10
1, 0, 0 --Speed = 20
2, 0, 0 --Speed = 30
3, 0, 0 --Speed = 40
4, 1, 1 --Age = 18
5, 1, 1 --Age = 18
6, 2, 2 --Colour = Blue
7, 2, 2 --Colour = Black
8, 2, 2 --Colour = Orange
9, 0, 9 --Speed = 33
10, 0, 10 --Speed = 34
11, 0, 11 --Speed = 35
我想要做的是将表格中的所有Speed条目的Speed Speed更新为'55',以便table2看起来像这样:
Table2:
0, 55
1, 55
2, 55
3, 55
4, 18
5, 18
6, blue
7, black
8, orange
9, 55
10, 55
11, 55
希望这是有道理的。我不确定语法,可以使用循环,但想知道是否有更好的方法(我相信它有!)。
谢谢
答案 0 :(得分:2)
UPDATE table2
SET table2.Value = 55
FROM table2
JOIN table3 ON table3.fkValueId = table2.id
WHERE table3.fkValueTypeId = 0
编辑:不知道SQL服务器的语法瑕疵:)
答案 1 :(得分:2)
重写@ hobodave的回答:
UPDATE table2
SET Value = 55
FROM table2
JOIN table3 ON table3.fkValueId = table2.id
WHERE table3.fkValueTypeId = 0