求 SQL批量更新
我这个 mysql不识别以下的表达方式。。。
UPDATE ddn0
SET ddn0.personnel = newserv.per
WHERE ddn0.name = newserv.name
意思就是 一个用户 对应 一个 客服,现在呢有不少 用户都换了新的客服
DDN0是 大表 用户与客服
比如
DDN0
name .......personnel....
aa benny
bb denny
cc cooky
dd elle
.....
下面是个更新名单
newserv
比如
name per
cc dk
dd john
..........
想寻求个MYSQL能识别的方式,或者是我这个有什么错误。
哪怕大家多提供几种方式呢我 挨个实验一下也好
------解决方案--------------------UPDATE ddn0
SET ddn0.personnel = newserv.per
FROM newserv --缺少这个
WHERE ddn0.name = newserv.name
------解决方案--------------------UPDATE ddn0
SET ddn0.personnel = newserv.per
from newserv--少了这一步
WHERE ddn0.name = newserv.name
------解决方案--------------------加上了还是 不认。。。?
楼主检查一下ddn0表是否有personnel,newserv表是否有per
ddn0.name, newserv.name--列名是否正确
------解决方案----------------------SQL 2000
create table DDNO(name varchar(10), personnel varchar(10))
insert DDNO select 'aa ', 'benny '
union all select 'bb ', 'denny '
union all select 'cc ', 'cooky '
union all select 'dd ', 'elle '
create table newserv(name varchar(10), per varchar(10))
insert newserv select 'cc ', 'dk '
union all select 'dd ', 'john '
update DDNO set personnel=isnull((select per from newserv where name=DDNO.name), personnel)
select * from DDNO
--result
name personnel
---------- ----------
aa benny
bb denny
cc dk
dd john
(4 row(s) affected)