1.有一个表A有多条数据:
A01 A02 A03 A04
--------------------------
'a1' 'A01' '123' 'fk'
'a2' 'A01' '456' 'fk'
...
2.然后有另一个表tb,内容是:
tb01 tb02
----------
a1 '888'
a2 '999'
...
3.表A中字段A02里的内容是字段A01的名称'A01',现想把A02里的内容换成select tb02 from tb 的值,A02字段对应是A01里的值a1,而a1又是另一个tb里的数据,欲得到效果如下:
A01 A02 A03 A04
--------------------------
'a1' '888' '123' 'fk'
'a2' '999' '456' 'fk'
..
不知各位看懂了没有,在线等待
------解决方案--------------------
update 表A set A02=b.A02
from 表A a left join 表tb b on a.A01=b.A01
------解决方案--------------------
--1.
update 表A set A02=b.tb02
from 表A a left join 表tb b on a.A01=b.A01
--2.还是:
update 表A set A02='tb02'
from 表A a left join 表tb b on a.A01=b.A01
--第二种情况没有意思呀,直接变成tb02字符了。
------解决方案--------------------
A01 A02 A03 A04
--------------------------
'a1' '888' '123' 'fk'
'a2' '999' '456' 'fk'
update A set a02 = b.tb02 from a , b where a.a01 = b.tb01
A01 A02 A03 A04
--------------------------
'a1' 'tb02' '123' 'fk'
'a2' 'tb02' '456' 'fk'
第二种结果是常量值,貌似是个字段名,不对吧.
如果是:则无需要B表了.
update A set a02 = 'tb02'
------解决方案--------------------
发现乌龟
------解决方案--------------------
两表关联更新就可以啦,是不是你的表名,列名没给对?