0 0

mysql出错:You can't specify target table 'App' for update in FROM clause10

执行 update App set App.packageName_id=(select id from PackageName,App where App.packageName=PackageName.packageName);
出错:ERROR 1093 (HY000): You can't specify target table 'App' for update in FROM clause
求优化?
 
2012年8月28日 12:45

6个答案 按时间排序 按投票排序

0 0

采纳的答案

UPDATE App,PackageName SET App.packageName_id=PackageName.id where
WHERE App.packageName=PackageName.packageName;

2012年8月28日 14:05
0 0

update和其后的where语句条件中不能对同一个表进行操作,推荐用两条sql语句实现。

2012年8月29日 17:05
0 0

sql基本语法错误

2012年8月29日 11:26
0 0

update App App set App.packageName_id=(select id from PackageName,App where App.packageName=PackageName.packageName);
重命名App
------------------
或者省去别名
update App set packageName_id=(select id from PackageName,App where App.packageName=PackageName.packageName); 

2012年8月28日 16:18
0 0

你的Update语句要么加上table的别名App,要么就set不要App. :

update App App
   set App.packageName_id =
       (select id
          from PackageName, App
         where App.packageName = PackageName.packageName);

或者
update App
   set packageName_id =
       (select id
          from PackageName, App
         where App.packageName = PackageName.packageName);

2012年8月28日 14:13
0 0

你需要的sql是否是:
update App set packageName_id=(select id from PackageName where App.packageName=PackageName.packageName);

set App.packageName_id  不需要App这个表名

2012年8月28日 12:47

相关推荐

Global site tag (gtag.js) - Google Analytics