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