mysql - MySQL如何更新另一个表中同一行的多个列
问题描述
我需要更新一个如下所示的表。
ItemID FID1 FID2 FID3 FName1 FName2 FName3
100084 2545 2536 2535
使用另一个表中的数据。另一个表看起来像:
FID FName
2545 Name 1
2534 Name 3
2536 Name 2
我希望更新后的表格如下所示:
ItemID FID1 FID2 FID3 FName1 FName2 FName3
100084 2545 2536 2535 Name 1 Name 2 Name 3
在单个查询中执行此操作的干净方法是什么?
解决方案
我不会问您为什么要以非规范化形式存储数据;-)-但这应该可行:
update one_table t
left join other_table t1 on t1.FID = t.FID1
left join other_table t2 on t2.FID = t.FID2
left join other_table t3 on t3.FID = t.FID3
set t.FName1 = t1.Fname,
t.FName2 = t2.Fname,
t.FName3 = t3.Fname
推荐阅读
- javascript - 如何在 ionic 3 angular 4 中停止重新加载页面
- visual-studio - 在没有 vs 2017 的 Windows 模拟器上发布和调试 ionic 3 应用程序
- c# - EntityFramework 6.2.0 预生成视图模板 - 找不到方法:HasIndex()
- javascript - VueJs 从 100 个对象的响应中一次只显示/渲染一个对象
- vba - IF(AND) 的 FormulaR1C1 问题
- javascript - D3.js - 文本未显示在节点中
- python-2.7 - ImportError:没有名为 google.api_core 的模块
- php - 如何将数组中的值从控制器传递给查看
- regex - 重复 POSIX 量词在 Amazon Redshift 中不起作用
- xml - 如何使用 xsl 表达式在 ditamap 中获取 pubtitle