2016-08-03 16 views
1

MySqlで1つのテーブルを使用して「where exists」というクエリを実行しています。 SELECT *でうまく動作しますが、SELECT *の代わりにDELETEを実行しようとすると失敗します。MySQLでWHERE EXISTSを使用したクエリを削除する

削除と同じクエリを実行するにはどうすればよいですか?事前に多くの感謝!

select * from MyTable t1 where exists ( 
select * from MyTable t2 where t1.user_id = t2.user_id 
and t1.object_id <> t2.object_id and t2.role = "ADMIN") 
and role = "ORG_MANAGER" 
and object_type = "type_b"; 

答えて

1
delete from MyTable t1 
where user_id in (
    select user_id 
    from MyTable t1 
    where exists ( 
    select * from MyTable t2 
    where t1.user_id = t2.user_id 
    and t1.object_id <> t2.object_id 
    and t2.role = "ADMIN") 
    and role = "ORG_MANAGER" 
    and object_type = "type_b"; 
) 
関連する問題