我需要更新一个如下所示的表。
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