gu123xin
2018-08-18 10:11
采纳率: 95.2%
浏览 4.8k

mysql两张表(A,B)关联更新,使B表中更新特定标签下的数据

遇见一个问题,就是需要将mysqlB表的数据添加到A表(两个表的数据量在2g左右),如下图
表A<br>
图片说明

表B图片说明
更新后的表格
图片说明
精通mysql的大佬帮帮忙,小弟刚刚使用mysql,不熟悉SQL语句,详细些,谢谢大牛们!

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • qq_18559903 2018-08-18 14:43
    已采纳

    update 表A as a ,表B as b SET a.pass = b.pass WHERE a.id = b.id

    已采纳该答案
    评论
    解决 4 无用
    打赏 举报
  • gu123xin 2018-08-18 10:13

    标签ID的是和pass一一对应的,需要根据id的数据插入pass,大佬们帮帮忙

    评论
    解决 无用
    打赏 举报
  • weixin_41334120 2018-08-19 06:43

    update 表A as a set a.pass=(SELECT b.pass from 表B as b where b.id=a.id)
    where EXISTS (SELECT 1 from 表B as b where b.id=a.id)

    评论
    解决 无用
    打赏 举报
  • 路漫漫兮其修远兮 2018-08-20 01:22
     update tabA as a inner join tabB  as b  on a.id = b.id set a.pass = b.pass
    
    评论
    解决 无用
    打赏 举报
  • 葫芦胡 2018-08-20 02:36

    1.在业务代码里面实现,当B表更新时,根据id去更新A中的数据
    2.可以用触发器,具体参见:https://blog.csdn.net/HXNLYW/article/details/80650865,触发器是隐藏执行的,所以需要在业务代码处,加上相应的注解,让阅读代码的人知道背后做了什么。

    评论
    解决 无用
    打赏 举报
  • weixin_42537724 2019-01-02 12:37

    select A.id, (isnull(A.pass,0)+isnull(B.pass,0)) as pass from A left join B on A.id=B.id

    可以用两个表左连接,然后两列相加

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题