【发布时间】:2020-01-23 13:25:58
【问题描述】:
我在两个不同的表产品和订单中有两列价格和数量。我想将订单中列的值设置为价格*数量。 我尝试了以下查询,但没有运气
update orders_
set amount = (select price*quantity
from product,
orders_
where product.productid = orders_.productid);
productid 是两个表之间的公共链接 我不断收到以下错误:
ERROR 1093 (HY000): 你不能指定目标表'orders_' 在 FROM 子句中更新
【问题讨论】:
-
请在代码问题中给出minimal reproducible example--剪切&粘贴&运行代码;具有期望和实际输出(包括逐字错误消息)的示例输入(作为初始化代码);标签和版本;明确的规范和解释。这包括您可以提供的最少代码,即您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于包含 DBMS/产品和 DDL 的 SQL,其中包括约束和索引以及表格格式的基表初始化。 PS你有一个语法错误。阅读语法和手册。
-
这是一个常见问题解答。在考虑发布之前,请始终使用谷歌搜索您的错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有或没有您的特定字符串/名称和站点:stackoverflow.com 和标签,并阅读许多答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。 PS 请在发帖前查看编辑框下方帖子的格式化版本。阅读代码和引文的内联和块格式的编辑帮助。
-
您不应该像这样存储从其他列计算的值,您知道数据不一致。相反,创建一个视图将始终具有最新值。 (或者至少使用触发器。)