日期:2014-05-16  浏览次数:20857 次

求这个update语句执行顺序以及效率
update a as a set a.damage=(SELECT damage FROM b AS b WHERE b.id = a.id) where a.team_id=28;
这个是先执行的where,出来一个a.team_id=28的临时表,然后join b on b.id = a.id,然后再把damage update到a.damage么

------解决方案--------------------
引用这个是先执行的where,出来一个a.team_id=28的临时表,然后join b on b.id = a.id,然后再把damage update到a.damage么

------解决方案--------------------
更常用的写法是
update a inner join b on a.id = b.id set a.damage=b.damage where a.team_id=28;


效率如何,则建议自己测试一下。