为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕码人8056858 2019-09-24 16:12:35
我有两个桌子,这是我的第一张桌子,ID      SUBST_ID        CREATED_ID1       031938          TEST1232       930111          COOL1233       000391          THIS1094       039301          BRO10115       123456          COOL938...     ...             ...这是我的第二张桌子ID      SERIAL_ID       BRANCH_ID1       039301          NULL2       000391          NULL3       123456          NULL...     ...             ...我需要一些如何使用第一个表中的数据更新第二个表中的所有行的信息。它需要在一个更新查询中完成所有这些操作。SUBST_ID和SERIAL_ID都匹配,它需要从第一个表中获取created_id并将其插入第二个表中。因此,第二张表将变为以下内容,ID      SERIAL_ID       BRANCH_ID1       039301          BRO10112       000391          THIS1093       123456          COOL938...     ...             ...感谢您的帮助和指导。
查看完整描述

3 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

UPDATE TABLE2

       JOIN TABLE1

       ON TABLE2.SERIAL_ID = TABLE1.SUBST_ID

SET    TABLE2.BRANCH_ID = TABLE1.CREATED_ID;


查看完整回答
反对 回复 2019-09-24
?
慕容森

TA贡献1853条经验 获得超18个赞

除了Tom的答案之外,如果您需要经常重复操作并希望节省时间,还可以执行以下操作:


UPDATE TABLE1

       JOIN TABLE2

       ON TABLE1.SUBST_ID = TABLE2.SERIAL_ID

SET    TABLE2.BRANCH_ID = TABLE1.CREATED_ID

WHERE TABLE2.BRANCH_ID IS NULL


查看完整回答
反对 回复 2019-09-24
?
当年话下

TA贡献1890条经验 获得超9个赞

使用INNER JOIN:


UPDATE TABLE1

INNER JOIN TABLE2 ON TABLE1.SUBST_ID = TABLE2.SERIAL_ID

SET TABLE2.BRANCH_ID = TABLE1.CREATED_ID;

另一个替代解决方案,如下所示:在这里我使用WHERE子句代替JOIN


UPDATE 

    TABLE1,

    TABLE2

WHERE

    TABLE1.SUBST_ID = TABLE2.SERIAL_ID

SET 

    TABLE2.BRANCH_ID = TABLE1.CREATED_ID;


查看完整回答
反对 回复 2019-09-24
  • 3 回答
  • 0 关注
  • 461 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信