两个表,根据条件批量更新其中一个表的某一列数据。(高分求救,在线等待。)

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我,我在线等待。

参考技术A 批量更新的语法是这样 update a表 set a.filed=(select field from b表 where b.关联字段=c.关联字段) from b表, c表 where b.关联字段=c.关联字段 and 其他条件

欢迎你加入.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                                      -- 匹配的时候,更新

 

以上是关于两个表,根据条件批量更新其中一个表的某一列数据。(高分求救,在线等待。)的主要内容,如果未能解决你的问题,请参考以下文章

sql将一个表中的某一列数据更新到另一个表中

如何跨表格取满足条件的某一列数据的最小日期的函数

update set语句

如何批量修改oracle数据库中某一个表中的某一列数据?

将数据库中的某一表中的某一列或者多列添加到另一张表的某一列中——猎八哥FLY

在线等。。。。SQL中如何将一个表中的某一列的数据替换到另一个表中的某一列里。