Как удалить с помощью Join EXASol - PullRequest
0 голосов
/ 25 сентября 2018

Я хочу удалить некоторые записи из таблицы, используя Join в EXAsol.

Я пытаюсь -

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 голосов
/ 26 сентября 2018

Исходное сообщение об ошибке происходит из-за 'TRAN', следующего сразу за 'DELETE' - см. Руководство пользователя Exasol - единственные допустимые параметры ANSI SQL для DELETE: 'DELETE FROM ..' или 'DELETE * FROM ...'

Существуют различные варианты, как описано выше, для выбора записей, которые необходимо удалить.Лично я склонен использовать метод «ГДЕ .. В .. (ВЫБРАТЬ ...)», так как считаю его более понятным и поэтому более легким в обслуживании.

0 голосов
/ 26 сентября 2018
DELETE FROM tab1 a 
WHERE EXISTS (SELECT 1 FROM tab2 b WHERE a.id=b.id);

Это так же хорошо, как JOIN и использует индекс внутри.Вы можете проверить это, если включите профилирование и проверьте его после выполнения запроса.

...