Sql server 基于另一个表SQL Server的结果更新行的值

Sql server 基于另一个表SQL Server的结果更新行的值,sql-server,Sql Server,表一: IdOne | IdTwo ------+------ 32423 | 435 2343 | 345 2344 | 45 表1从另外两个表中获取idOne和IDTOW。IdOne存储场地的ID。无论该场地是否处于活动状态,从中获取其id的表都会存储。用户可以停用场地并将其激活。有些副本指向同一地点,我想将表1中副本的值设置为从存储此信息的表中获取的活动地点的值 我尝试了子查询、关联查询,但还没走多远。任何帮助都将不胜感激 编辑: 对不起,我的问题措辞很糟糕。我有点疯狂。这是正

表一:

IdOne | IdTwo
------+------
32423 |  435
2343  |  345
2344  |  45
表1从另外两个表中获取idOne和IDTOW。IdOne存储场地的ID。无论该场地是否处于活动状态,从中获取其id的表都会存储。用户可以停用场地并将其激活。有些副本指向同一地点,我想将表1中副本的值设置为从存储此信息的表中获取的活动地点的值

我尝试了子查询、关联查询,但还没走多远。任何帮助都将不胜感激

编辑:

对不起,我的问题措辞很糟糕。我有点疯狂。这是正确的问题

我有两张桌子。将表演与场馆关联起来的多对多表。还有一张桌子

多对多表具有以下布局:

performance_venue 
(
    performanceId,
    venueId
)
venue 
(
    uniqueId,
    venueTypeId,
    active
)
场馆桌子的布局如下:

performance_venue 
(
    performanceId,
    venueId
)
venue 
(
    uniqueId,
    venueTypeId,
    active
)
它们之间的关系是通过vention.uniqueId=performance\u venue.venueId。performance_场馆中存在引用活动值为0的场馆实例的实例。这些活动值为0的场馆具有更新的场馆实例,其中活动值为1且具有相同的venueTypeId。因此,我想做的是更新所有performance_场馆实例,以引用活动值为1的场馆实例,如果它们当前引用的是活动值为0的场馆实例

这里有一个例子

表演场地

performanceId  | venueId
---------------+--------
1              | 1
2              | 2
3              | 3
performanceId  | venueId
---------------+---------
1              | 2
2              | 2
3              | 3
地点

更新后的预期结果

表演场地

performanceId  | venueId
---------------+--------
1              | 1
2              | 2
3              | 3
performanceId  | venueId
---------------+---------
1              | 2
2              | 2
3              | 3

解决方案包括构造一个表,该表的活动和非活动地点位于同一行中。然后您只需将performance_venueId设置为活动的唯一ID

更新pv 设置pv.venueId=活动\u唯一ID 从第五场馆 在pv.venueId=v.uniqueId上加入表演场馆pv 参加 选择venueTypeId,uniqueId作为活动\u uniqueId 从场地 v_在v.venueTypeId上活动=v_在v.venueTypeId上活动 其中v.active=0,v.venueTypeId在 选择venueTypeId 从场馆v_sub 其中active=1,v.venueTypeId=v_sub.venueTypeId 和v.uniqueId!=活动唯一性

如果您发布查询,可能更容易理解。您是否尝试在谷歌上搜索更新sql server来查看文档?微软网站上的更新声明对此进行了解释。是的,我在过去的几个小时里一直在这样做@斯蒂芬,我的问题不起作用。我需要根据包含活动id结果的查询结果更新非活动id列。结果没有相同的ID,它们唯一的标识符是场馆表上包含子键的另一个键,这是同一个场馆。TableTwo看起来像什么?您可以发布您正在处理的查询吗?@digital.亚伦表二:唯一id、位置id、场馆类型id这有助于我判断它是否重复-如果有多个场馆共享此信息,这意味着场馆被添加了不止一次,活动表一:活动id和场馆id。在表一中,我必须找到非活动场馆id,并将其替换为相应的活动场馆id。我有找到非活动场地的脚本,但对我来说困难的是如何将非活动场地更新为活动场地?感谢您的回复,但我需要更新所有行,现在只有一行,ID不相同,它们不同,因此我无法执行t1.idOne=t2.idOne