两个表,根据条件批量更新其中一个表的某一列数据。(高分求救,在线等待。)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个表,根据条件批量更新其中一个表的某一列数据。(高分求救,在线等待。)相关的知识,希望对你有一定的参考价值。
现有两个表,A表和B表,A表中有Aid,ABID和Aname三个字段,B表有Bid,Bname两个字段。我要解决的问题是,将A表中ABID字段中等于B表中Bname的数据更改为等于B表中Bid的值。
其实就是说,A表中的ABID本来是应该等于B表的Bid的值的,但是结果我弄错了,弄成等于Bname的了。
不明白的可以Call我,我在线等待。
欢迎你加入.NET俱乐部QQ群:2613338本回答被提问者采纳 参考技术B 不明白你说是什么!
如果你是当A表的ABID等于B的BID的时候,改变B表的某些值可以这样些
Update B set B.Field=AValues From B inner join A.ABID=B.BID
由于你用的是匿名的,联系不上。 参考技术C update A set ABID=(
select Bid from B where b.Bname=a.ABID
)
where exists(
select 1 from B where b.Bname=a.ABID
)
B表的Bid,Bname 应该是一一对应的吧 ;这是标准SQL写法 参考技术D UPDATE A
SET A.BID = B.BID
FROM A
INNER JOIN B ON A.BID = B.BName 第5个回答 2010-10-20 update 表A
set ABID=b.Bid
from 表A a
left join 表B b
on a.ABID=b.Bname
Oracle两张表关联批量更新其中一张表的数据
Oracle两张表关联批量更新其中一张表的数据
方法一(推荐):
UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A);
尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围。
方法二:
MERGE INTO 表2 USING 表1 ON (表2.A = 表1.A) -- 条件是 A 相同 WHEN MATCHED THEN UPDATE SET 表2.C = 表1.B -- 匹配的时候,更新
以上是关于两个表,根据条件批量更新其中一个表的某一列数据。(高分求救,在线等待。)的主要内容,如果未能解决你的问题,请参考以下文章