加入SQL Server中的Update SubQuery中的用法

时间:2015-02-26 12:07:20

标签: sql-server

我正在尝试使用SubQuery更新表的一列。 我有两张桌子。 在第一个中,我保留了名为“产品”的产品数量。 我用第二张桌子作为篮子命名为'篮子'。 首先,用户将产品添加到购物篮。付款后,我想更新库存('产品'表'库存'列)。 如果我们将股票命名为“股票”并且用户购买产品编号b_stock,则formul将作为股票 - = b_stock。股票将从products.stock和b_stock读取basket.products。 当然我需要客户参数为@cus。 谢谢你的回复。

1 个答案:

答案 0 :(得分:0)

我认为你所寻求的是EXIST条款。

我无法测试它,我不确定我是否正确使用了桌子上的钥匙。下面是可能帮助您的一些代码。

update 
    products p
set 
p.stock = 
(
    select 
        p.stock - b.b_stock 
    from 
        basket as b
    JOIN customers c ON (b.customer = c.id) 
    where 
        c.customer = @cus
    and b.product = p.id
) 
where EXIST
(
    select 
        1
    from 
        basket b1
    JOIN customers c1 ON (b1.customer = c1.id) 
    where 
    c1.customer = @cus
    AND p.id = b1.product
)