sql联合查询更新问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 07:23:49
UPDATE dede_addonarticle SET body = dede_archives.title WHERE aid IN dede_archives.id(

SELECT id, title
FROM dede_archives
WHERE dede_archives.id = dede_addonarticle.aid
)

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dede_archives.id(SELECT id,title
FROM dede_archives
WHERE dede_archives.id = d' at line 1

出错。大家应该明白我的意思吧。呵呵

虽然只有一列
但是( SELECT id
FROM dede_archives
WHERE dede_archives.id = dede_addonarticle.aid
)
你这个的返回值不只是一个也是不可以实现的
估计下面这个是你要的结果
create table #temp
(
sid int identity,
id char(100)
)

insert into #temp
select id from dede_archives

declare @sum int
set @sum=(select count(sid) from #temp)

while @sum>0
begin
UPDATE dede_addonarticle SET body =(select title from dede_archives join dede_addonarticle on dede_archives.id = dede_addonarticle.aid join #temp on dede_archives.id = #temp.id where #temp.sid=@sum)
where dede_addonarticle.aid =(select dede_archives.id from dede_archives,#temp where dede_archives.id=#temp.id and #temp.sid=@sum)
set @sum=@sum-1
end

drop table #temp