2016-08-03 16 views
1

Ich führe die Abfrage mit "wo existiert" mit einer Tabelle in MySql. Es funktioniert gut mit SELECT *, aber schlägt fehl, wenn ich DELETE anstelle von SELECT * versuche.DELETE Abfrage mit WHERE EXISTS in MySQL

Wie die gleiche Abfrage mit löschen? Vielen Dank im Voraus!

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"; 

Antwort

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"; 
)