MySQL heeft niet het equivalent van de output
of returning
clausules die door andere databases worden verstrekt. Uw beste gok is een tijdelijke tafel:
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);
Dan heeft de tabel die je zojuist hebt gemaakt de id's die je wilt.
Opmerking:het is belangrijk om de nieuw gemaakte tabel te gebruiken voor het verwijderen. Anders kan een andere thread/proces de gegevens wijzigen tussen het moment waarop u de ID's vastlegt en het moment waarop u ze verwijdert.