2016-04-14 66 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