怎么从一张表中查出数据更新到另一张表中?

时间:2022-10-12 19:22:48
RT,
update hdzx_question set c_qusType=1 where c_deptId =52;
select * from [dbo].[BECBoardMessage] where Prop1='zx';

现在需要从[dbo].[BECBoardMessage]表中查询出Prop1='zx';的所有数据,以此来更新hdzx_question表中的c_qusType,使
c_qusType=1

还请大神指点一二

6 个解决方案

#1


UPDATE  hdzx_question
SET     c_qusType = 1
WHERE   c_deptId = 52
        AND EXISTS ( SELECT 1
                     FROM   [dbo].[BECBoardMessage]
                     WHERE  Prop1 = 'zx'
                            AND hdzx_question.id = BECBoardMessage.id )  --这个链接关系lz自己用相关字段连一下

#2



update hdzx_question a set a.c_qusType=1
from  [dbo].[BECBoardMessage] b
 where a.c_deptId =b.c_deptId and b.Prop1='zx'

关联字段我自己帮你加的,对不对得看你真实业务

#3


引用 1 楼 OrchidCat 的回复:
UPDATE  hdzx_question
SET     c_qusType = 1
WHERE   c_deptId = 52
        AND EXISTS ( SELECT 1
                     FROM   [dbo].[BECBoardMessage]
                     WHERE  Prop1 = 'zx'
                            AND hdzx_question.id = BECBoardMessage.id )  --这个链接关系lz自己用相关字段连一下

这个不行,全都更新了
没有更新符合条件的,也就是说从select * from [dbo].[BECBoardMessage] where Prop1='zx';查询出多少条,就更新多少条,但是这个把全部的都更新了

#4


关键是比要把两个表的连接条件要说一下啊

#5



-- 大概就是这样的语法
update A set A.col1= B.col1, A.col2 = B.col2 , .....
from mytable A , youtable B 
where A.ID = B.ID and ........

#6


用游标试一试

#1


UPDATE  hdzx_question
SET     c_qusType = 1
WHERE   c_deptId = 52
        AND EXISTS ( SELECT 1
                     FROM   [dbo].[BECBoardMessage]
                     WHERE  Prop1 = 'zx'
                            AND hdzx_question.id = BECBoardMessage.id )  --这个链接关系lz自己用相关字段连一下

#2



update hdzx_question a set a.c_qusType=1
from  [dbo].[BECBoardMessage] b
 where a.c_deptId =b.c_deptId and b.Prop1='zx'

关联字段我自己帮你加的,对不对得看你真实业务

#3


引用 1 楼 OrchidCat 的回复:
UPDATE  hdzx_question
SET     c_qusType = 1
WHERE   c_deptId = 52
        AND EXISTS ( SELECT 1
                     FROM   [dbo].[BECBoardMessage]
                     WHERE  Prop1 = 'zx'
                            AND hdzx_question.id = BECBoardMessage.id )  --这个链接关系lz自己用相关字段连一下

这个不行,全都更新了
没有更新符合条件的,也就是说从select * from [dbo].[BECBoardMessage] where Prop1='zx';查询出多少条,就更新多少条,但是这个把全部的都更新了

#4


关键是比要把两个表的连接条件要说一下啊

#5



-- 大概就是这样的语法
update A set A.col1= B.col1, A.col2 = B.col2 , .....
from mytable A , youtable B 
where A.ID = B.ID and ........

#6


用游标试一试