2016-04-14 10 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- update-in-from-clause) –

+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