【问题标题】:Insert Value in FieldA from matching ID in FieldB根据字段中的匹配 ID 在字段中插入值
【发布时间】:2014-05-09 01:10:53
【问题描述】:

我有两种类似的情况。

1) 我有一个 ID|Name|ParentID 的表。我想添加一个 ParentNaame 字段,然后在表中执行一个查询步骤,找到带有 ParentID 的记录并将其存储在 ParentName 字段中。

1 | Manhattan | 2
2 | New York | 3
3 | United States |  

变成

1 | Manhattan | 2 | New York
2 | New York | 3 | United States

2) 除了 ID/父名称来自第二个表之外,其他内容相同

任何想法表示赞赏。

【问题讨论】:

  • 你知道join 是什么吗?如果您尝试过任何 SQL,请将其添加到问题中。
  • 顺便说一句,边走边学mysql,谢谢加了Join。

标签: mysql join sql-update


【解决方案1】:

您正在尝试执行更新连接:

UPDATE my_table a 
JOIN   my_table b ON a.parent_id = b.id
SET    a.parent_name = b.name

如果您想从不同的表中获取 parent_name 的值,同样的原则也适用 - 只需在 join 中使用它即可。

【讨论】:

  • 运行后,我似乎遇到了两条或多条记录具有相同的 ParentID 时都没有更新的情况。有没有办法解决这个问题?
  • 如果我没记错的话;在同一张表上运行时,如果具有 ParentID 的记录具有更高的 ID,则它不会更新 ParentID ID 记录。有没有办法也“向后”运行它?
  • 我有这两条记录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-21
  • 1970-01-01
  • 2013-03-15
  • 1970-01-01
相关资源
最近更新 更多