几天后要进行sql测试。我们不能使用计算机,因此一切都在没有计算机帮助的情况下完成。
此练习存在一些问题。
目标是使用表AT+CSCS="005500540046002D0038"
中的值来更新表purchase
中的值。如果product
高于product.production_date
,则必须将sold.purchase_date
设置为等于purchase_date
。
这就是我所做的:
production_date
我可以这样做吗?我的意思是,将update和from命令一起使用?
谢谢。
答案 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