Puede evitar la tabla temporal y hacer un bucle en mysql, puede eliminar las dos tablas en una sola consulta y usar una consulta solar para los datos temporales
DELETE t1, t2
FROM AppCoverLetter t1
INNER JOIN (
SELECT AppId
FROM ApplyData.AppFormData
where lower(Email) = lower(_email_)
) t3 ON t1.AppID = t3.AppId
INNER JOIN AppError t2 ON t2.AppID = t3.AppId;
o si tienes más mesa
DELETE t1, t2, tx
FROM AppCoverLetter t1
INNER JOIN (
SELECT AppId
FROM ApplyData.AppFormData
where lower(Email) = lower(_email_)
) t3 ON t1.AppID = t3.AppId
INNER JOIN AppError t2 ON t2.AppID = t3.AppId
INNER JOIN table3 tx ON tx.AppID = t3.AppId;