SQL更新表使用另一个表中的值

时间:2018-12-16 22:45:31

标签: sql join sql-update

几天后要进行sql测试。我们不能使用计算机,因此一切都在没有计算机帮助的情况下完成。

此练习存在一些问题。

目标是使用表AT+CSCS="005500540046002D0038"中的值来更新表purchase中的值。如果product高于product.production_date,则必须将sold.purchase_date设置为等于purchase_date

这就是我所做的:

production_date

我可以这样做吗?我的意思是,将update和from命令一起使用?

谢谢。

3 个答案:

答案 0 :(得分:1)

是的,可以。 我认为这是一个错字:您写了updade而不是update

答案 1 :(得分:1)

请尝试在下面的查询中通过为两个表的公共列重新分配ID。

update purchase
set purchase_date = (SELECT product.production_date 
                   from product 
                  where purchase.id = product.id)
WHERE EXISTS (SELECT 1
          FROM product
          WHERE purchase.id = product.id
            and purchase.purchase_date < product.production_date);

答案 2 :(得分:-1)

您必须编写一个内部查询以使其起作用,否则您可能会得到不正确的SQL错误。例如:

update purchase pur
set pur.purchase_date=(select pro.production_date
from product pro
where pur.purchase_date<pro.production_date);

有关更多详细信息,请检查:Update statement with inner join on Oracle

相关问题