I did something like this with PHP and it works.
JavaScript
x
$table1 = $DB->query('SELECT column1 FROM table1');
$table2 = $DB->query('SELECT column2 FROM table2'); # excludes
$diff = "'" . implode("','", array_diff($table1, $table2)) . "'";
$DB->query("DELETE FROM table1 WHERE column1 IN ({$diff})");
My question is how to do the same with one sql statement, instead of writing 3 different and doing the array_diff/implode
thing.
Unfortunately I have limited sql knowledge but I’m pretty sure it’s possible, I think with JOIN
but after 2 hours still can’t find how. :/
Advertisement
Answer
You can use sub-query. The query will be like below.
JavaScript
Delete from Table1
where column1 in (
SELECT column2 FROM table2
)