1

我想使用 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]
4

2 回答 2

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

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

于 2018-09-25T21:52:39.767 回答
0

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

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

于 2018-09-26T08:47:57.450 回答