在sql server中,我们可是使用以下update语句对表进行更新:
update a set a.xx= (select yy from b) where a.id = b.id ;
但是在mysql中,不能直接使用set select的结果,必须使用inner join:
update a inner join (select yy from b) c on a.id =b.id set a.xx = c.yy
示例代码:
多表连接更新
UPDATE spgl_goods a INNER JOIN( SELECT g.`ID` AS id FROM rkgl_goods_repertory gr, rkgl_repertory r, spgl_goods g WHERE 1=1 AND gr.`REPERTORY_ID`=r.`ID` AND gr.`GOODS_ID`=g.`ID` AND g.`IS_DELETE`=FALSE AND r.`USER_ID`=36 GROUP BY gr.`GOODS_ID` ) b ON a.`ID`=b.id SET a.`IS_DELETE`=TRUE;