如何使用 Join EXASol 删除

How to Delete Using Join EXASol

我想在 EXAsol 中使用 Join 从 table 中删除一些记录。

我正在尝试 -

Delete tran
FROM 
Transactions tran
INNER JOIN 
Employees e
ON tran.ID = e.Transaction_ID
WHERE e.Name = 'Abhisar';

我得到的错误是 -

syntax error, unexpected identifier_chain2, expecting FROM_ or '*' [line 1,column 8]
DELETE FROM tab1 a 
WHERE EXISTS (SELECT 1 FROM tab2 b WHERE a.id=b.id);

这与 JOIN 一样好,并且在内部使用索引。如果您启用分析并在查询执行后检查它,您可以验证它。

原始错误消息是由于紧跟在 'DELETE' 之后的 'TRAN' - 请参阅 Exasol 用户手册 - DELETE 的唯一有效 ANSI SQL 选项是 'DELETE FROM..' 或 'DELETE * FROM...'

然后有如上所述的各种选项来选择要删除的记录。我个人倾向于使用 'WHERE .. IN..(SELECT...)' 方法,因为我认为它更清晰,因此更易于维护。