sql 连表更新问题
各位牛牛好,我现在遇到个问题,需要请教大家。
就是我有两张表,表结构是一模一样的,因为另一张是备份表,只是其中的一些字段值不一样。
当初我把原表的某个字段为4的都改为了7,现在我需要把备份表中为4的,把原表也该为4,会有多行受影响。
update info set qq = (select qq from bakbak where qq = 4)
--(select qq from bakbak where qq = 4),这个查询的返回值不止一个,所以update info set qq=(1或2或3...),SQL SERVER不知道用哪个,就报错了
update info set qq = (select qq from bakbak where qq = 4)
--参考如下:
--首先你的原表和备份表要有唯一的关联字段。比如存在主键ID。
--先查询,看看结果是否正确,再更新:
--select
SELECT *
FROM dbo.info A
INNER JOIN dbo.bakbak B
ON a.ID = B.id
WHERE B.qq = 4
--update
UPDATE A
SET A.qq = B.qq
FROM dbo.info A
INNER JOIN dbo.bakbak B
ON a.ID = B.id
WHERE B.qq = 4