PostgreSQLの削除SQLについて
以下の組み合わせテーブルから
A番号とB番号が同じグループIDであるものを削除するSQLを作成したいと思っています。
抽出するSQLを作成したのですが、削除するSQLがうまく作れません。
アドバイスいただけると嬉しいです。
抽出するSQLを作成しました。
SELECT
組み合わせテーブル.ID,
組み合わせテーブル.A番号,
組み合わせテーブル.B番号,
InnerJoinTB1.番号,
InnerJoinTB1.グループID,
InnerJoinTB2.番号,
InnerJoinTB2.グループID
FROM
組み合わせテーブル
INNER JOIN
番号テーブル AS InnerJoinTB1 ON 組み合わせテーブル.A番号 = InnerJoinTB1.番号
INNER JOIN
番号テーブル AS InnerJoinTB2 ON 組み合わせテーブル.B番号 = InnerJoinTB2.番号
WHERE
InnerJoinTB1.グループID != InnerJoinTB2.グループID
取得したい組み合わせテーブルのIDが取得できていることを確認したのですが、
組み合わせテーブルから該当するレコードを削除するSQLをどのように構築していいのかよくわかりません…
単純にSELECT箇所をDELETEにすればよいのかと考えたのですが、INNER JOINしているため、うまくいきませんでした。
DELETE
FROM
組み合わせテーブル
INNER JOIN
番号テーブル AS InnerJoinTB1 ON 組み合わせテーブル.A番号 = InnerJoinTB1.番号
INNER JOIN
番号テーブル AS InnerJoinTB2 ON 組み合わせテーブル.B番号 = InnerJoinTB2.番号
WHERE
InnerJoinTB1.グループID != InnerJoinTB2.グループID
番号テーブル
ID グループID 番号
100 1 1000
200 1 2000
300 2 3000
400 3 4000
組み合わせテーブル
ID A番号 B番号
1 1000 2000
2 3000 1000
3 4000 1000
4 2000 1000
※A番号とB番号が番号テーブルに紐づく