Oracle資料庫多表聯合修改的三種語句
1、效率最快的
MERGE INTO user_member_info a
USING ( select min(UP.created) as cre,min(up.shop_no) as shop_no,up.memberid as memberid
from user_platform_relation up,
( select memberid as mid,min(created) as cre
from user_platform_relation
group by memberid) um
where up.created = um.cre and up.memberid = um.mid
group by up.memberid) b
ON (a.id = b.memberid
)
WHEN MATCHED THEN UPDATE SET a.created = b.cre,a.shop_no = b.shop_no,a.modified_time = sysdate
where a.shop_no is null;
2、效率其次
update (select ui.userid as uiuid,oi.user_id as oiuid,
ui.id as uimid,oi.memberid as oimid,
oi.modified_time as oitime
from user_member_info ui, reserveorder_info oi
where ui.brandid = oi.brandid and ui.mobile = oi.telphone)
set oiuid = uiuid, oimid = uimid;
3、效率最差
UPDATE RETURN_FACTORYORDER r SET (r.XSBILLDATE,r.DQ) = (
SELECT f.saletime,f.bezei FROM RF f WHERE r.BILL = f.BILL
)