【问题标题】:How to update values in a table from another table MySQL如何从另一个表 MySQL 更新表中的值
【发布时间】:2021-02-21 13:34:29
【问题描述】:

我创建了 table_1,其中包含产品列表以及价格和数量列(当前两者都是 NULL 作为空值的默认值) 我有另一个表 (table_2),其中包含有关每种产品的价格和数量信息的相同列。

如何使用 table_2 中的信息更新 table_1? 我尝试使用 UPDATEINSERT INTO 命令的子查询 - 两者都不起作用。

我在这里粘贴了两个表: https://justpaste.it/8qusd

【问题讨论】:

  • 欢迎来到 SO!您能否添加您尝试过但不起作用的 SQL 语句并解释它们不起作用的方式?另外,请将表格添加到您的帖子中,而不是将链接粘贴到图像(有关详细信息,另请参阅stackoverflow.com/help/how-to-ask)。
  • 谢谢!我已经使用这个平台很长一段时间了,你在这里有很棒的社区 :) 不幸的是我已经删除了我以前的尝试......重新图像 - 我一开始想这样做,但 SO 告诉我我必须达到最低评分才能做到这一点。

标签: mysql sql sql-update inner-join


【解决方案1】:

考虑更新/加入语法:

update table1 t1
inner join table2 t2 on t2.id = t1.id
set t1.price = t2.price, t1.quantity = t2.quantity

【讨论】:

  • 这是我得到的:错误代码:1175。您正在使用安全更新模式,并且您尝试更新没有使用 KEY 列的 WHERE 的表。要禁用安全模式,请切换 Preferences -> SQL Editor 中的选项并重新连接。
  • @David:您启用了 MySQL 安全更新模式。您可以使用 SET SQL_SAFE_UPDATES = 0; 为当前会话禁用它。
  • Hmmmmmm 有趣……但是这种安全更新模式是什么意思呢?我想保留它吗?是不是类似于“防白痴”的东西?
  • @David:查看文档:dev.mysql.com/doc/refman/8.0/en/…。是的,这确实是某种“防傻瓜”安全性。我认为不需要。
猜你喜欢
  • 2018-06-11
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
  • 2010-10-21
  • 2012-08-02
  • 2012-09-05
相关资源
最近更新 更多