encontrado este link útil
copiado desde allí
A menudo, se quiere borrar algunos registros de una tabla en función de criterios en otra mesa. ¿Cómo se elimina de una de esas tablas sin eliminar los registros en ambas tablas?
DELETE DeletingFromTable
FROM DeletingFromTable INNER JOIN CriteriaTable
ON DeletingFromTable.field_id = CriteriaTable.id
WHERE CriteriaTable.criteria = "value";
La clave es que especificar el nombre de la tabla que desea eliminar de como el SELECT.Entonces, JOIN y WHERE seleccionan y limitan, mientras que ELIMINAR elimina. Sin embargo, no estás limitado a una sola mesa. Si tiene una relación de varios a varios (por ejemplo, Revistas y suscriptores, unidos por una Suscripción) y está eliminando un Suscriptor, también debe eliminar todos los registros potenciales del modelo de unión.
DELETE subscribers, subscriptions
FROM subscribers INNER JOIN subscriptions
ON subscribers.id = subscriptions.subscriber_id
INNER JOIN magazines
ON subscriptions.magazine_id = magazines.id
WHERE subscribers.name='Wes';
Eliminación de registros con una unión también se podría hacer con un LEFT JOIN y una DONDE para ver si la tabla unida era NULL, por lo que se puede eliminar registros en una tabla que no tenían un partido (como en preparación para agregar una relación). Ejemplo de publicación por venir.
¿Por qué quiere hacer una unión? – tster
¿Qué piensas hacer con esta pregunta ?: http://stackoverflow.com/questions/1590709/how-to-mark-counted-rows-as-deleted-contind-from-previous-question –
Porque las uniones suelen ser más rápidas . – HLGEM