Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Subconsulta

Boa noite!

Estive assistindo a aula de subconsulta, e gostaria de saber a razão de seu uso, em que casos ela é indicada, já que elas é uma "tabela virtual" e pode onerar a performance.

Se uma query qualquer, por exemplo, pode ser resolvida com o INNER join, porque utilizar uma subquery?

5 respostas

Olá alexmatos3!

Realmente, esses casos podem ser resolvidos por joins e um join normalmente é mais performático que uma subquery, mas, normalmente, as subquerys são mais usadas por ter uma melhor legibilidade.

Normalmente são usadas quando várias pessoas irão utilizar essas querys e dar manutenção. Se for apenas uma pessoa trabalhando com o banco e documentar tudo certo, um join pode ser mais indicado.

Espero ter ajudado!

Boa tarde Fabiano!!

Desde já agradeço pela ajuda....

De que forma uma subconsulta facilita a manutenção, quando se está trabalhando com várias pessoas (ou quando não se tem documentação das tabelas...)?

Alguma resposta?

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.

solução!

Obrigado pelo retorno Fabiano.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software