日期:2014-05-17  浏览次数:20761 次

一个update 语句,大家进来看看。急。
A表
id name
1 aa
2 bb
3 cc
B表 
id name 
  aa
  cc

我想写个语句把表b变成
B表 
id name 
1 aa
3 cc
怎么写?

------解决方案--------------------
update b
set b.id=(select a.id from a where a.name=b.name)
where exits (select 1 from a where a.name=b.name)

说明
1、b表数据可以重复,但b表中任何一条记录只能对应a表中唯一一条纪录。否则会报错。
2、where条件一定要加,如果不加where条件,会把b中有,但A中没有的纪录更新为空