Subconsulta: outra maneira de consultar várias tabelas

No artigo anterior, apresentamos como usar JOIN em instruções SQL para obter dados relacionados em várias tabelas e discutimos especificamente os princípios de junções internas, junções externas esquerda / direita / completa, junções cruzadas, junções naturais e autojunções E como usá-lo.

Além das consultas de junção, o SQL também fornece outra maneira de consultar várias tabelas ao mesmo tempo: Subconsulta. Neste artigo, daremos uma olhada em vários tipos de subconsultas e operadores relacionados.

O que é uma subconsulta?

Vamos primeiro considerar uma questão, quais funcionários têm um salário mensal maior do que o salário médio mensal de todos os funcionários? Você pode primeiro usar a função AVG para obter o salário médio mensal de todos os funcionários:

SELECT AVG(salary)
  FROM employee;

AVG(salary)|
-----------|
9832.000000|

Em seguida, use o resultado da consulta como a condição de consulta da seguinte instrução para retornar os funcionários cujo salário mensal é maior que 9832:

SELECT emp_name, salary
  FROM employee
 WHERE salary > 9832;

O resultado desta declaração é o seguinte:

subconsulta

Usamos duas consultas para resolver esse problema simples, mas os requisitos em aplicativos reais são geralmente mais complicados; obviamente, precisamos de funções de consulta mais avançadas.

O SQL fornece um método de consulta chamado subconsulta, que pode resolver esse problema com muita facilidade:

SELECT emp_name, salary
  FROM employee
 WHERE salary > (
                 SELECT AVG(salary)
                   FROM employee
                );

Acho que você gosta

Origin blog.csdn.net/horses/article/details/108729099
Recomendado
Clasificación