Reputation: 14406
I'd like to convert the following
SELECT * `members` m
WHERE NOT EXISTS
(SELECT s.mid
FROM memberships s
WHERE s.mid = m.id);
to the equivalent delete statement. However, the code below doesn't work:
DELETE FROM `members` m
WHERE NOT EXISTS
(SELECT s.mid
FROM memberships s
WHERE s.mid = m.id);
Upvotes: 0
Views: 193
Reputation: 126035
You can use the multiple-table DELETE
syntax to perform an outer join between the tables:
DELETE FROM members
USING members LEFT JOIN memberships ON memberships.mid = members.id
WHERE memberships.mid IS NULL
Upvotes: 2