Encontré este enlace útil
Copiado de allí
A menudo, uno desea eliminar algunos registros de una tabla según los criterios de otra tabla. ¿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 especifique el nombre de la tabla que se eliminará como SELECT. Entonces, JOIN y WHERE hacen la selección y la limitación, mientras que DELETE hace la eliminación. Sin embargo, no está 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';
La eliminación de registros con una combinación también se puede hacer con LEFT JOIN y WHERE para ver si la tabla unida era NULL, de modo que pueda eliminar registros en una tabla que no tiene una coincidencia (como en preparación para agregar una relación. ) Ejemplo de publicación por venir.