MySQL如何更新另一个表中同一行的多个列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于MySQL如何更新另一个表中同一行的多个列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用MySQL一个表中的字段更新另一个表中字段

如何比较 Ag Grid 中同一行中的两个数据?

优化SQL,CASE中同一行多次

如何对mysql表中的多个列进行连接

用单个列从另一个表更新一个表中的多个列?

从另一个表数据更新表中的多个列,包括空值