美文网首页
update 多字段从另外一张表

update 多字段从另外一张表

作者: Yluozi | 来源:发表于2023-04-20 16:57 被阅读0次

    场景:数据库表里的多个字段通过另外一张表的字段关联查询出来并update

    常规逻辑sql

    每个字段都分别取一下再一个个更新(速度慢,需要优化)

    UPDATE table1 vf
       set vf.CUSTOMER_TEL =
           (select v2.客户联系人电话
              from table2 v2
             where vf.accountid = v2.客户账号
               and rownum = 1),
           vf.ROOM_NUMBER  =
           (select v2.房号
              from table2 v2
             where vf.accountid = v2.客户账号
               and rownum = 1),
           vf.BRANCH_OFFICE =
           (select v2.分公司
              from table2 v2
             where vf.accountid = v2.客户账号
               and rownum = 1  )
     where vf.ifsplit = '1'
    

    ORCALE

    关联查询,整体入库(优化后)

    UPDATE table1 vf0 
       set (vf0 .CUSTOMER_TEL, vf0 .ROOM_NUMBER, vf0 .BRANCH_OFFICE) =
           (select v2.客户联系人电话, v2.房号, v2.分公司
              from table1 vf
             INNER JOIN table2 v2
                ON vf.accountid = v2.客户账号 and rownum = 1 and  vf0.id = vf.id)
     where vf0.ifsplit = '1'
    
    
    

    MYSQL

    关联查询,整体入库(优化后)

     UPDATE table1 vf
    INNER JOIN table2 v2 ON vf.accountid = v2.客户账号 and rownum = 1 and  vf0.id = vf.id
    SET vf.CUSTOMER_TEL = v2.客户联系人电话,
        vf.ROOM_NUMBER = v2.房号,
        vf.BRANCH_OFFICE = v2.分公司
    WHERE vf.ifsplit = '1'
    

    相关文章

      网友评论

          本文标题:update 多字段从另外一张表

          本文链接:https://www.haomeiwen.com/subject/ofarjdtx.html