update a set money=(select sum(b.money) from b where b.kind=a.kind) where exists(select 1 from b where b.kind=a.kind); 谢谢!可我想问exists(select 1 from b where b.kind=a.kind);中select 1 什么意思?难道写一个语句只能更新A表中的一个记录么,谢谢!
select 1只是一种写法,确认有记录就行.
不是, exists(select 1 from b where b.kind=a.kind); 这个是防止对于在b中没有对应数据的行业执行update操作, select 1 ... 因为是exists语句,只要找到存在符合条件的纪录 就返回true,随便使用一个就可以 select * from ...;select 'a' from ...都行。
update a set money=(select sum(b.money) from b where b.kind=a.kind(+))
Update a set money = (select money from (select kind ,sum(money) from b group by kind) b where b.kind = a.kind) 绝对可以.
可以。 exists(select 1 from b where b.kind=a.kind); 就是只要存在一条,该条件就成立了。 也必需存在一条,该条件才成立。
where exists(select 1 from b where b.kind=a.kind);
谢谢!可我想问exists(select 1 from b where b.kind=a.kind);中select 1 什么意思?难道写一个语句只能更新A表中的一个记录么,谢谢!
exists(select 1 from b where b.kind=a.kind);
这个是防止对于在b中没有对应数据的行业执行update操作,
select 1 ... 因为是exists语句,只要找到存在符合条件的纪录 就返回true,随便使用一个就可以
select * from ...;select 'a' from ...都行。
where b.kind = a.kind)
绝对可以.
exists(select 1 from b where b.kind=a.kind);
就是只要存在一条,该条件就成立了。
也必需存在一条,该条件才成立。