SQL Subquery | |
SQL >
Linguagem SQL avançada >
Subquery
É possível integrar uma instrução SQL noutra. Quando tal é efetuado nas instruções WHERE ou HAVING, possuem uma construção de consulta secundária. A sintaxe será a seguinte: SELECT "nome_coluna1"
FROM "nome_tabela1" WHERE "nome_coluna2" [Comparison Operator] (SELECT "nome_coluna3" FROM "nome_tabela2" WHERE "condição"); [Comparison Operator] pode ser um operador de igualdade como =, >, <, >=, <=. Também pode ser um operador de texto como "LIKE". A parte a vermelho é considerada como sendo uma "consulta interna", enquanto a parte verde é considerada como sendo a "consulta externa". Vamos utilizar o mesmo exemplo conforme utilizado para ilustrar as uniões SQL: Tabela Store_Information
Tabela Geography
e pretendemos utilizar uma consulta secundária para descobrir as vendas de todas as lojas na região West. Para tal, utilizamos a seguinte instrução SQL: SELECT SUM(Sales) FROM Store_Information
WHERE Store_Name IN (SELECT Store_Name FROM Geography WHERE Region_Name = 'West'); Resultado:
Neste exemplo, em vez de unir diretamente as duas tabelas e, em seguida, adicionar apenas o montante de vendas para as lojas na região West, primeiro utilizamos a consulta secundária para descobrir que lojas se encontram na região West e, em seguida, somamos o montante de vendas dessas lojas. No exemplo acima, a consulta interna é executada em primeiro lugar e o resultado é então fornecido à consulta externa. Este tipo de consulta secundária denomina-se consulta secundária simples. Se a consulta interna estiver dependente da consulta externa, iremos obter uma consulta secundária correlacionada. Abaixo é apresentado um exemplo de uma consulta secundária correlacionada: SELECT SUM(a1.Sales) FROM Store_Information a1
WHERE a1.Store_Name IN (SELECT Store_Name FROM Geography a2 WHERE a2.Store_Name = a1.Store_Name); Repare na cláusula WHERE na consulta interna, enquanto a condição envolve uma tabela da consulta externa.
Copyright © 2024 1keydata.com Todos os direitos reservados. |