MySQL更新表基于另一个表的值

我有两个桌子,


这是我的第一张桌子,


ID      SUBST_ID        CREATED_ID

1       031938          TEST123

2       930111          COOL123

3       000391          THIS109

4       039301          BRO1011

5       123456          COOL938

...     ...             ...

这是我的第二张桌子


ID      SERIAL_ID       BRANCH_ID

1       039301          NULL

2       000391          NULL

3       123456          NULL

...     ...             ...

我需要一些如何使用第一个表中的数据更新第二个表中的所有行的信息。


它需要在一个更新查询中完成所有这些操作。


SUBST_ID和SERIAL_ID都匹配,它需要从第一个表中获取created_id并将其插入第二个表中。


因此,第二张表将变为以下内容,


ID      SERIAL_ID       BRANCH_ID

1       039301          BRO1011

2       000391          THIS109

3       123456          COOL938

...     ...             ...

感谢您的帮助和指导。


慕码人8056858
浏览 467回答 3
3回答

30秒到达战场

UPDATE TABLE2       JOIN TABLE1       ON TABLE2.SERIAL_ID = TABLE1.SUBST_IDSET    TABLE2.BRANCH_ID = TABLE1.CREATED_ID;

慕容森

除了Tom的答案之外,如果您需要经常重复操作并希望节省时间,还可以执行以下操作:UPDATE TABLE1       JOIN TABLE2       ON TABLE1.SUBST_ID = TABLE2.SERIAL_IDSET    TABLE2.BRANCH_ID = TABLE1.CREATED_IDWHERE TABLE2.BRANCH_ID IS NULL

当年话下

使用INNER JOIN:UPDATE TABLE1INNER JOIN TABLE2 ON TABLE1.SUBST_ID = TABLE2.SERIAL_IDSET TABLE2.BRANCH_ID = TABLE1.CREATED_ID;另一个替代解决方案,如下所示:在这里我使用WHERE子句代替JOINUPDATE     TABLE1,    TABLE2WHERE    TABLE1.SUBST_ID = TABLE2.SERIAL_IDSET     TABLE2.BRANCH_ID = TABLE1.CREATED_ID;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL