2017-03-16 1 views
3
Delete from post 
where id_post 
in 
( 
    select MIN(id_post) 
    from post 
    where id_owner='2' 
) 

戻り値: は、「FROM句に更新するために、ターゲットテーブル 『ポスト』を指定することはできません」削除ポスト

は私が間違って何をしているのですか?

+4

様考え重複、id_owner =ポスト から(MIN(id_postを選択)「2」)を有するサブクエリでポストのインスタンスを置換することです[ MySQLのエラー1093 - FROM句の更新のためのターゲットテーブルを指定することはできません](http://stackoverflow.com/questions/45494/mysql-error-1093-cant-specify-target-table-for-u pdate-in-from-clause) –

答えて

3

問題は、MySQLで、テーブルに対してUPDATE/INSERT/DELETEを実行している場合、内部クエリでそのテーブルを参照できないことです(ただし、その外部テーブルのフィールドを参照できます... )

溶液をこの

Delete from post 
where id_post 
in 
( 
    select id_post 
    from (select MIN(id_post) 
    from post 
    where id_owner='2') as A 
) 
0

ORDER BYLIMITの使用はどうですか?

Delete p 
    from post p 
    where id_owner = 2 
    order by id_post 
    limit 1; 

注:数値定数の周りに単一引用符を使用しないでください。私はid_ownerが数字であると推測しています。

関連する問題