1. ホーム
  2. sql

[解決済み] DELETE ... from ... where ... で

2022-03-10 04:38:29

質問

テーブル2の'stn'と'jaar'の組み合わせに一致するテーブル1のレコードを削除する方法を探しています。テーブル2の列'jaar'の内容は、前のステージ/クエリで次のようにフォーマットされています。

year(datum) AS 'jaar' です。

申し訳ありませんが、この解決策を見つけたサイトをもう一度見つけることができません。

DELETE FROM table1
WHERE stn, year(datum) IN (SELECT stn, jaar FROM table2);

解決方法は?

を使って実現することができます。 exists :

DELETE
  FROM table1
 WHERE exists(
           SELECT 1
             FROM table2
            WHERE table2.stn = table1.stn
              and table2.jaar = year(table1.datum)
       )