怎样将一张表的一列更新,更新的要求是和另一张表的某一列相同?sql 怎么写?update A s

怎样将一张表的一列更新,更新的要求是和另一张表的某一列相同?sql 怎么写?update A set A.a1=(select B.b1 from B)这样对吗?还需要什么约束条件?谢谢各位大神了

首先update更新一个字段的时候,你要确保这个条件就是你想要的数据,因此,你验证一下,你以where为条件select 出来看看。

看你的语句明显就不行,这是什么东西。完全就不对,连语法估计都过不了。
update是以单条记录逐步更新,你这update A set A.a1=(),括号中的slect B.b1 from B,就拿括号里的数据来说,这个不是单一的值,是一个集合,一列的集合,而update是单条的,你让单条的=一列的,这系统不得头晕。所以,要满足的你的条件,你得加条件。
首先找到两个表的关联,这样确定A表的单条记录以什么条件能在B条也以这个条件是单条的记录。因此
update A set A.a1=B.b1 from B where (两表的关系关系,使记录是一对一的关系,要不然执行就算语法通过,数据也是错误的)追问

这样对吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-30
你的写法一般会报错,只有B表只有一条记录时才会通过。
不晓得你的表结构,但是一般是
update A set A.co2=B.co2 from B where A.co1=B.co1
具体你的情况,需要你最好提供下表结构才能下结论追问

谢谢大神!麻烦你看下我这样修改后对吗?

追答

不大对啊,运行不会报错,但结果不对,你给我原表,和想要的效果,这样的更新,用不着子查询吧,弄复杂了

追问

我明天上班时把原表给你,这会还没有的,谢谢好心人,这个问题困扰我两天了,衷心感谢!

相似回答