sql 请教update语句in多个值时,进行多次更新
where A.id in (select id from C where id in (B.id))
注:B.id值是多个子查询C.id也是多个。
我执行代码时,仅更新了B.id的第一个值。请问如何根据B.id进行多次数据更新?
update A set A.amount=B.amount
from a,b where A.id in (select id from C where id in (B.id)) 展开
在数据库的操作中,更新数据,是很常见的情况。其中sql 请教update语句in多个值时,进行多次更新的方法为:
1、创建一个临时表,用于演示sqlserver语法中update更新修改使用方法。
2、创建另外一个临时表,用于演示如何将一个临时表的数据更新到另外一个临时表。
3、往临时表中插入几行测试数据,其中的Total栏位都不插入值。
4、查询临时表中的测试数据select * from #tblUpdate;select * from #tblTotal。
5、使用update更新临时表#tblUpdate中的Total结果,假设Total = num * price update #tblUpdate set Total = Num * Price。
6、再次查询临时表#tblUpdate的结果,可以看到之前为NULL的Total列都有值了。
注意事项:
SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。
如果是我
update A SET A.amount = (select amount from B where id = A.id)
where A.id in(select id from c where id in(select id from B))
我猜的 你想更新A表 amount 值等于B表 相对应的id下的 amount
并且 a的id范围 要在 c表和b表同时存在的id
不好意思写漏了,应该是:
update A set A.amount=B.amount
from a,b where A.id in (select id from C where id in (B.id))
主要是想让 A.amount=B.amount的累计。
比如:b.amount in(1,2,3,4,5)a.amount=b.amount(1+2+3+4+5)=15
你还是把你3个表贴出来看看 不然这个真的越看越迷糊
我跟踪了是多个结果的,主要是A.amount这里如何多次更新,按照b.id的值进行更新。比如查出b.amount in(1,2,3,4,5)a.amount=b.amount(1+2+3+4+5)这样,不知道你清楚了没
2022-12-01 · 百度认证:北京惠企网络技术有限公司官方账号
在数据库的操作中,更新数据,是很常见的情况。其中sql 请教update语句in多个值时,进行多次更新的方法为:
1、创建一个临时表,用于演示sqlserver语法中update更新修改使用方法。
2、创建另外一个临时表,用于演示如何将一个临时表的数据更新到另外一个临时表。
3、往临时表中插入几行测试数据,其中的Total栏位都不插入值。
4、查询临时表中的测试数据select * from #tblUpdate;select * from #tblTotal。
5、使用update更新临时表#tblUpdate中的Total结果,假设Total = num * price update #tblUpdate set Total = Num * Price。
6、再次查询临时表#tblUpdate的结果,可以看到之前为NULL的Total列都有值了。
注意事项:
SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。