简要咨询咨询QQ网站导航网站搜索手机站点联系我们设为首页加入收藏 

mysql中You can’t specify target table for update in FROM clau

来源:易贤网   阅读:2929 次  日期:2015-03-10 16:12:30

温馨提示:易贤网小编为您整理了“mysql中You can’t specify target table for update in FROM clau”,方便广大网友查阅!

mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。 例如下面这个sql:

代码如下:

delete from tbl where id in

(

select max(id) from tbl a where EXISTS

(

select 1 from tbl b where a.tac=b.tac group by tac HAVING count(1)>1

)

group by tac

)

改写成下面就行了:

代码如下:

delete from tbl where id in

(

select a.id from

(

select max(id) id from tbl a where EXISTS

(

select 1 from tbl b where a.tac=b.tac group by tac HAVING count(1)>1

)

group by tac

) a

)

也就是说将select出的结果再通过中间表select一遍,这样就规避了错误。注意,这个问题只出现于mysql,mssql和oracle不会出现此问题。

更多信息请查看IT技术专栏

更多信息请查看数据库
点此处就本文及相关问题在本站进行非正式的简要咨询(便捷快速)】     【点此处查询各地各类考试咨询QQ号码及交流群
上一篇:MySQL中的if和case语句使用总结
下一篇:mysql的左右内连接用法实例
易贤网手机网站地址:mysql中You can’t specify target table for update in FROM clau
由于各方面情况的不断调整与变化,易贤网提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!