2016-04-14 64 views
0

我得到一个错误:Mysql的高级查询

ERROR 1093 (HY000): You can't specify target table 'postac' for update in FROM clause 

上查询:

UPDATE postac 
SET statek= (
    SELECT statek 
    FROM postac 
    WHERE nazwa='Bjorn') 
WHERE nazwa='*a*'; 

有人能解决这个问题?

+1

你看一下相关的问题? – Mihai

+1

[MySQL错误1093 - 无法在FROM子句中指定目标表进行更新]的可能重复(http://stackoverflow.com/questions/45494/mysql-error-1093-cant-specify-target-table-for-从子句中更新) –

+0

此行为在[UPDATE'语句](http://dev.mysql.com/doc/refman/5.7/en/update.html)文档中有解释:*“您无法更新表并从子查询中的同一表中进行选择。“* – axiac

回答

0

尝试这样的:

update postac p1 
inner join postac p2 on p1.id = p2.id and p2.nazwa='Bjorn' 
set p1.statek = p2.statek 
where p1.nazwa='*a*' 
+0

假设'id'是表格的'PK',你的查询是'no-op'。 – axiac