MySQL har ikke det, der svarer til output
eller returning
klausuler leveret af andre databaser. Dit bedste bud er et midlertidigt bord:
CREATE TABLE TheDeletedIds as
SELECT t1.id
FROM t1 LEFT JOIN
t2
ON t1.t2_id = t2.id
WHERE t2.id IS NULL OR t2.is_valid = false;
DELETE t1
FROM t1
WHERE t1.id IN (SELECT id FROM TheDeletedIds);
Så har den tabel, du lige har oprettet, de id'er, du ønsker.
Bemærk:Det er vigtigt at bruge den nyoprettede tabel til sletningen. Ellers kan en anden tråd/proces ændre dataene mellem det tidspunkt, hvor du fanger id'erne, og det tidspunkt, du sletter dem.