免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1571 | 回复: 2
打印 上一主题 下一主题

为什么update 两个表会出现以下的错误??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-29 09:58 |只看该作者 |倒序浏览
有两个表temp(col1,col2,col3),t_temp(col1,col2,col3)其中col3是唯一的值,其中temp有20条记录,t_temp有100条记录,用以下一条语句
update t_temp a set (a.col1,a.col2)=(select b.col1,b.col2 from temp b where a.col3=b.col3) 系统把t_temp表中80条清空。为什么??
用一条语句应该如何写?谢谢

论坛徽章:
0
2 [报告]
发表于 2004-11-29 16:20 |只看该作者

为什么update 两个表会出现以下的错误???

(select b.col1,b.col2 from temp b where a.col3=b.col3) 返回的是一組數據。UPDATE不能執行的。我覺得可能需要用程式達成你的目的了。

论坛徽章:
0
3 [报告]
发表于 2004-11-29 18:03 |只看该作者

为什么update 两个表会出现以下的错误???

原帖由 "anton" 发表:
有两个表temp(col1,col2,col3),t_temp(col1,col2,col3)其中col3是唯一的值,其中temp有20条记录,t_temp有100条记录,用以下一条语句
update t_temp a set (a.col1,a.col2)=(select b.col1,b.col2 from temp b wher..........

应该限定那些行要update啊,没加条件,当然是把t_temp中的所有记录update了,没有匹配项的就用null.
改成下面试试:
update t_temp a set (a.col1,a.col2)=(select b.col1,b.col2 from temp b where a.col3=b.col3)
where a.col3 in(select a.col3 from t_temp a,temp b where a.col3=b.col3)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP