如何删除Teradata表中不在另一个表中的行?

Pau*_*per 4 sql teradata

让我的情况变得棘手的是我没有一个列密钥,只有一个简单的主键列表要删除(例如,"从表中删除键入([list])").我有多个列作为主键,并且需要加入所有列.

使用我所知道的其他数据库,我认为可以这样做:

DELETE FROM
    table1 t1
  LEFT OUTER JOIN
      table2 t2
    ON
      t2.key1 = t1.key1 AND
      t2.key2 = t1.key2
  WHERE
    t2.key1 IS NULL;
Run Code Online (Sandbox Code Playgroud)

但Teradata(v12)以错误号3706响应,说"语法错误:FROM子句中不允许加入表".

Pau*_*per 10

发现这是通过以下方式完成

DELETE FROM
    table1
  WHERE
    (key1, key2) NOT IN (
      SELECT UNIQUE key1, key2 FROM table2
    );
Run Code Online (Sandbox Code Playgroud)