最近在将oracle储存过程转为mysql储存过程的时候遇到下列sql语句:
update bb_qs_tdzzsqsdwjbqkb t
set (t.ynsessbdczzs,
t.ynsecswhjsszzs,
t.ynsejyffjzzs,
t.ynsedfjyfjzzs,
t.ynsetdzzsyjse) =
(select a.FTKCJE_zzs,
a.FTKCJE_cjs,
a.FTKCJE_jyfj,
a.FTKCJE_dfjyfj,
a.FTKCJE_tdzzs
from BB_QS_YZRFDCYGDSJSBKC a
where a.cbhsdxxmid = qsdwid_in
and a.status = '0')
where t.id = v_bbid;
是update set = (select)格式的;
使用left join改为mysql
UPDATE bb_qs_tdzzsqsdwjbqkb t
LEFT JOIN (
SELECT
a.FTKCJE_zzs,
a.FTKCJE_cjs,
a.FTKCJE_jyfj,
a.FTKCJE_dfjyfj,
a.FTKCJE_tdzzs
FROM
BB_QS_YZRFDCYGDSJSBKC a
WHERE
a.cbhsdxxmid = qsdwid_in
AND a. STATUS = '0'
) tesl ON 1 = 1
SET t.ynsessbdczzs = tesl.FTKCJE_zzs,
t.ynsecswhjsszzs = tesl.FTKCJE_cjs,
t.ynsejyffjzzs = tesl.FTKCJE_jyfj,
t.ynsedfjyfjzzs = tesl.FTKCJE_dfjyfj,
t.ynsetdzzsyjse = tesl.FTKCJE_tdzzs;