Alex, tudo gira em torno da legibilidade.
Vou usar eu como exemplo. Quase não uso a linguagem SQL, pois uso a plataforma .NET e uso o Entity Framework para facilitar todas as consultas e interações com o banco de dados que a aplicação necessite.
Se fosse para eu dar manutenção ou entender uma query, com certeza teria mais facilidade em entender um select
dentro do outro, que encontrar um join
na frente. Teria que olhar a documentação e entender o que aquele comando faz (sei que join
junta tabelas, mas teria que ver qual tipo de junção faz). Select
é um comando básico que é mais fácil de entender ou lembrar.
As vezes o menos experientes terá que mexer no código e pode acontecer isso. Não estou dizendo que deve-se usar apenas subquerys, estou apenas expondo um cenário possível do mundo real.