使我的情况变得棘手的是我没有一个列键,只有一个简单的主键列表要删除(例如,“从表中删除键([列表])”)。我有多个列作为主键,并且需要加入所有列。
使用我对其他数据库的了解,我认为这可能是这样做的:
DELETE FROM
table1 t1
LEFT OUTER JOIN
table2 t2
ON
t2.key1 = t1.key1 AND
t2.key2 = t1.key2
WHERE
t2.key1 IS NULL;
但是 Teradata (v12) 以错误号 3706 响应,说“语法错误:FROM 子句中不允许连接表。”
最佳答案
发现这是通过以下方式完成的:
DELETE FROM
table1
WHERE
(key1, key2) NOT IN (
SELECT UNIQUE key1, key2 FROM table2
);
关于sql - 如何删除 Teradata 表中不在另一个表中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4321432/