如何使用Join EXASol删除

时间:2018-09-25 10:51:55

标签: sql database exasolution

我想使用EXAsol中的Join从表中删除一些记录。

我正在尝试-

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]

2 个答案:

答案 0 :(得分:0)

DELETE FROM tab1 a 
WHERE EXISTS (SELECT 1 FROM tab2 b WHERE a.id=b.id);

这和JOIN一样好,并且在内部使用索引。如果启用了性能分析,则可以对其进行验证,并在查询执行后对其进行检查。

答案 1 :(得分:0)

原始错误消息是由于紧随“ DELETE”之后的“ TRAN”引起的-请参见Exasol用户手册-唯一有效的ANSI SQL选项DELETE是“ DELETE FROM ..”或“ DELETE * FROM ...”。 '

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