declare @exampleTable table(
id int,
Quantity int
)
declare @exampleTable_Aux table(
id int,
Quantity int
)
insert into @exampleTable values(1,5),(2,8)
insert into @exampleTable_Aux values(1,3),(5,8)
select * from @exampleTable
select di_aux.id from @exampleTable di_aux inner join @exampleTable_Aux dij on di_aux.id=dij.id
declare @Quantity int;
UPDATE di SET Quantity=22
FROM @exampleTable di WHERE di.id in (select di_aux.id from @exampleTable di_aux inner join @exampleTable_Aux dij on di_aux.id=dij.id)
知道我想要的是从子查询中获取值的数量(例如,无效仅表示我假装的内容)
UPDATE di SET Quantity=@Quantity+di.Quantity
FROM @exampleTable di WHERE di.id in (select di_aux.id,@Quantity=dij.Quantity from @exampleTable di_aux inner join @exampleTable_Aux dij on di_aux.id=dij.id)
应该得到表格: 如果甚至可以更新子查询的值中的查询库,我该怎么做呢?
id Quantity
1 1 8
2 2 8
答案 0 :(得分:2)
您根本不需要sub-query
。加入Update
@exampleTable
表@exampleTable_Aux
这是正确的方法
UPDATE di_aux
SET di_aux.Quantity = dij.Quantity + di_aux.Quantity
FROM @exampleTable di_aux
INNER JOIN @exampleTable_Aux dij
ON di_aux.id = dij.id