我想使用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]
答案 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 ...)”方法,因为我认为这更清晰,因此更易于维护。