关于update联合2张表的问题

归来的阿克力斯 2014-09-22 08:10:31
请问下,就是informix在update的时候,我使用下面的这个语句:
update dctriskcodepp set
dctriskcodepp.code1=(SELECT DISTINCT code1 FROM tmp_t2
WHERE
dctriskcodepp.riskcode=tmp_t2.riskcode
AND dctriskcodepp.clausetype=tmp_t2.clausetype
AND dctriskcodepp.kindcode=tmp_t2.kindcode
)

这个语句应该是只更新在表tmp_t2中并且满足下面三个条件的数据吧? 为什么我执行这个语句的时候 把整个dctriskcodepp 都更新了呢?
...全文
155 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
已经知道结果,因为在update的外层并没有限制条件,所以不管里面是否有限制条件,都会更新整个表,即使里面是1=0,同样也是更新整个表,并且更新为了null.
hugolin168 2014-09-25
  • 打赏
  • 举报
回复
SELECT DISTINCT code1 FROM tmp_t2 WHERE dctriskcodepp.riskcode=tmp_t2.riskcode AND dctriskcodepp.clausetype=tmp_t2.clausetype AND dctriskcodepp.kindcode=tmp_t2.kindcode 这个查询出来的结果是什么?

1,194

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧