当前位置: 代码迷 >> Oracle管理 >> 关于连表更新解决办法
  详细解决方案

关于连表更新解决办法

热度:170   发布时间:2016-04-24 04:07:58.0
关于连表更新
我有两个表,如下:
tb1
tb2
利用tb2更新tb1,期望更新的效果如下:

不知语句应该怎么写
------解决思路----------------------

--大概如下,你根据你的业务改改,我这里没有测试。
update tb2
set mark = (select mark from tb1 where tb2.id = tb1.id)
where exists(select * from tb1 where tb2.id = tb1.id)


------解决思路----------------------

-- 多写点。
update tb2
set mark = (select mark from tb1 where tb2.mobile_head = substr(tb1.mobile,1,tb2.mobile_count))
where exists(select * from tb1 where tb2.mobile_head = substr(tb1.mobile,1,tb2.mobile_count))


------解决思路----------------------
2楼正解
另外需特别注意检查tb2是否存在交叉现象
如:tb2中1877又有18778,这样在更新18778开头的数据时,是按那条记录更新mark字段?
  相关解决方案