Prezados,
Uso oracle me deparei com uma duvida que creio que para geral é simples porem gostaria de confirmar se o que estou pensando esta correto, entao la vai a duvida:
qual a diferença entre:
select*
from tabela1 a left join tabela2 b on a.chave=b.chave and a.versao=1
======================diferença entre======================
select*
from tabela1 a left join tabela2 b on a.chave=b.chave
where a.versao=1
obrigado!
Você pode ver a diferença aqui: https://www.db-fiddle.com/f/sK3PwUFRDDqtpWUYCFKi6Y/0
Quando poe a clausula a.versao=1
no join, essa condiçao vale apenas para a parte que faz a correspondencia dos registros. Ou seja, você está dizendo que só há registros relevantes na tabela2, quando a versao na tabela1 for 1.
Quando poe a clausula no where, você está filtrando do resultado final, que apenas registros da tabela1 com a versao 1 vao aparecer.
1 curtida