MySQL以一个表的值更新另一个表字段值

    科技2022-07-13  155

    这个和execl中的vlookup是差不多的。

     

    在MySQL中的实现方式如下

    用一个表中的字段去更新另外一个表中的字段,

    MySQL 中有相应的 update 语句来支持,

    不过这个 update 语法有些特殊。

    看一个例子就明白了。

    0821表

    0902表

    方法一:

     

    UPDATE 表A,表B SET 表A.typeid=表B.id where 表A.typename=表B.typenam

    完成后效果:UPDATE all_oil_0821,all_oil_0902 SET all_oil_0821.ou_code=all_oil_0902.ou_code1 where all_oil_0821.uni_code=all_oil_0902.standard_code  

     

     

    方法二:

    UPDATE  A   LEFT JOIN  B   ON A.ID=B.ID SET A.SCENIC_TYPE= B.TYPE;

     

     

    此种方法也能解决问题。 UPDATE  all_oil_0821 A LEFT JOIN  all_oil_0902 B   ON A.ou_code=B.ou_code1 SET A.uni_code= B.standard_code;

     

    案例:

    今天遇到了一个问题,程序往数据库里面写数据的时候,有一个值丢失,正好在另外一个表里面有需要的数据,可以把他拿过来。

    确认好每笔流水只有一个订单,就开始干了。

    UPDATE gas_station_sale_pay p,refuel_monitor_record r SET p.vol = r.liter where p.order_id=r.order_id and p.id in( '155067', '155068', '155069', '155070')

    完成任务。

     

     

    留个坑:如果一个流水,有两个分开的订单,需要怎么处理。

    Processed: 0.015, SQL: 8