Lucas,
Essa é uma pergunta que gera muito debate e discussão. Tem muitas variáveis envolvidas.
Eu creio que em bancos de dados que contêm milhares de registros, o "INNER JOIN" tem um processamento mais rápido que a cláusula "WHERE". Mas em poucos registros a diferença é desprezível e não é possível perceber. Existem pessoas que dizem que a performance é a mesma, mas acredito que também depende muito da estrutura do banco e dados quando foi criado e outros fatores como de qual fabricante é o Banco de Dados (Oracle, Microsoft).
Para você ter uma ideia da briga, por favor, veja os comentários nos links abaixo:
===============================================================
Qual a diferença entre usar inner join ou por relacionamentos no where
A notação inner join foi introduzida na versão SQL92 do padrão ANSI SQL. Todos os principais bancos de dados adotam a sintaxe de junção do SQL92. Como a maioria dos servidores já estavam no mercado antes do novo padrão, eles também incluem a forma de junção antiga where, porém é preferível usar o novo padrão pelos seguintes motivos:
- Condições de junção e condições de filtro são separadas em duas clausulas diferentes (a subcláusula on e a cláusula where, respectivamente), tornando a consulta mais fácil de entender e manter.
- As condições de junção para cada par de tabelas estão contidas em suas próprias cláusulas on, tornando menos provável que parte de uma junção seja omitida por engano.
- Consultas que usam a sintaxe de junção SQL92 são portáveis entre servidores de banco de dados, ao passo que a sintaxe antiga where é ligeiramente diferente entre os diferentes servidores.
https://pt.stackoverflow.com/questions/44914/qual-a-diferen%C3%A7a-entre-usar-inner-join-ou-por-relacionamentos-no-where
===============================================================
Qual a diferença entre unir tabelas por JOIN e WHERE?
Não há diferença, algebricamente as consultas são idênticas e terão a mesma performance.
Pessoalmente eu prefiro usar o padrão ANSI 92, por algumas razões:
- Mais legível, com os critérios de união separadas da cláusula WHERE, pois não se sabe a primeira vista se condições na clásula WHERE são filtros ou junções.
- Menos provável que perca critérios de união, na primeira consulta se não especificarmos o critério na cláusula WHERE o resultado será o produto cartesiano entre as tabelas clientes,enderecos
- Evolução, se o padrão ANSI 92 especifica operadores de junções específicas, por que não usá-los?
- Flexibilidade, uma junção na cláusula WHERE que tenha um efeito de INNER JOIN e posteriormente precise ser alterado para OUTER pode ser bem mais complicado
https://pt.stackoverflow.com/questions/15025/qual-a-diferen%C3%A7a-entre-unir-tabelas-por-join-e-where
===============================================================
Qual a diferença entre usar inner join ou por relacionamentos no where
Em questão de resultados, não terá diferenças. Sobre desempenho, a condição de junção INNER tem um ganho discreto comparado com o WHERE, pelo fato de ser interpretado antes.
Ordem de interpretação: 1 - FROM; 2 - ON; 3 - INNER; 4 - WHERE; 5 - SELECT;
https://pt.stackoverflow.com/questions/44914/qual-a-diferen%C3%A7a-entre-usar-inner-join-ou-por-relacionamentos-no-where
===============================================================
[]'s,
Fabio I.