So you have a table where you want to delete a bunch of rows, based on a particular column being matched in another table.
This is easily achievable with MySQL.
DELETE FROM TABLE1
WHERE domain IN (
SELECT domain FROM TABLE2
)
The above SQL will delete all rows in TABLE1
that are found in TABLE2
.
But what if we need to limit which records are returned from TABLE2
?
That’s simple too. All we need to do is add a traditional WHERE
clause to our select statement.
DELETE FROM TABLE1
WHERE domain IN (
SELECT domain FROM TABLE2
WHERE column1='1' AND column2<>'2'
)