以下のSQLで見つかった行を削除したい
SELECT a
FROM my_table_a AS a
INNER JOIN my_table_b AS b ON a.id = b.id
WHERE b.my_name = "xyz"
以下のSQLで削除できるRDBもある。
DELETE a
FROM my_table_a AS a
INNER JOIN my_table_b AS p ON v.oem_part_id = p.part_id
WHERE b.my_name = "xyz"
PostgreSQLではこのSQLは文法エラーになる。
DELETE FROM my_table_a
WHERE id IN (
SELECT id FROM my_table_b WHERE my_name = "xyz"
);
delete
from my_table_a a
using my_table_b b
where a.id = b.id AND b.my_name = "xyz";
データ量が多い場合は、解決策2の方がベター。