这个和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')完成任务。
留个坑:如果一个流水,有两个分开的订单,需要怎么处理。