No puedes consultar y borrar la misma tabla en la misma consulta, porque es igual que intentar cortar la rama del árbol en que estás parado.
Por otro lado, si estás haciendo un JOIN entre la misma tabla que quieres borrar con otra. ¿por qué no haces el JOIN en el DELETE?
Es algo de manual (
13.2.1. Sintaxis de DELETE)
Sería el ejemplo de:
Código MySQL:
Ver original tbl_name[.*] [, tbl_name[.*] ...]
Y en tu aplicación sería mas o menos así:
O bien:
Francamente no uso ninguna porque me parece modo de programar mal administrado del DELETE. Prefiero crear tablas TEMPORARY para hacer esto.