Ich bin mit den vielen Macken von mySql nicht allzu vertraut, aber das sollte auch funktionieren, und vielleicht wird mySql nicht daran ersticken:
delete from articles
where not exists (
select id from authors
where authors.id = articles.author_id
)
Ähm, natürlich haben wir immer eine Sicherungskopie der Tabelle, bevor wir satzbasierte Löschungen versuchen :)