As MySQL doesn't support subqueries (prior to Version 4.1), nor the use of more
than one table in the DELETE statement (prior to Version 4.0), you
should use the following approach to delete rows from 2 related tables:
SELECT the rows based on some WHERE condition in the main table.
DELETE the rows in the main table based on the same condition.
DELETE FROM related_table WHERE related_column IN (selected_rows).
If the total number of characters in the query with
related_column is more than 1,048,576 (the default value of
max_allowed_packet, you should split it into smaller parts and
execute multiple DELETE statements. You will probably get the
fastest DELETE by only deleting 100-1000 related_column
ids per query if the related_column is an index. If the
related_column isn't an index, the speed is independent of the
number of arguments in the IN clause.