Fórum DUVIDA DELETE UTILIZANDO LEFT JOIN #572032
02/12/2016
0
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.
Se eu colocar a palavra exists , ele ignora meu parametro de data e deleta todas as linhas.
delete from NativeDocument where id in(
select a.id, b.idnativedocument
from NativeDocument a
left join DocumentInfo b on a.id = b.idnativedocument
where cast (b.createddate as date) BETWEEN '20161130' and '20161130')
Rodney Pereira
Curtir tópico
+ 0Post mais votado
02/12/2016
Fabio Parreira
Gostei + 1
Mais Posts
02/12/2016
Luiz Santos
Você jamais conseguiria fazer o que você quer com um LEFT JOIN.
Pense assim, com um LEFT, ele listaria todos os campos, mesmo que não exista contrapartida na outra tabela.
Assim você apagaria todos os seus dados.
Para esse caso, obrigatoriamente você tem que usar o INNER JOIN ou seu DELETE não vai funcionar direito
Grande abraço
Gostei + 1
02/12/2016
Rodney Pereira
Gostei + 0
02/12/2016
Rodney Pereira
Gostei + 0
14/12/2016
David Styveen
Acredito que a melhor maneira de fazer o delete seria utilizando o EXISTS.
delete from NativeDocument where exists ( select * from DocumentInfo b where NativeDocument.id = b.idnativedocument and cast (b.createddate as date) BETWEEN '20161130' and '20161130' )
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)