Um recurso poderoso do SQL é a possibilidade de executarmos comandos SQLs dentro de outros comandos SQLs.
É o que chamamos de subselects. Geralmente usado em instruções SQLs mais avançadas, onde é preciso recuperar resultados baseados em outros resultados.
Para facilitar o entendimento vamos nos basear em alguns exemplos simples.
Digamos que você precise listar todos os clientes de determinado estado. Em uma instrução de SQL simples você faria:
SELECT NOME, ESTADO FROM nome_da_tabela
Isso bastaria para trazer todos os clientes de todos os estados. Porém, como havia dito antes, você quer filtrar, recuperando apenas de determinados estados.
Suponha que você tenha uma tabela de vendas, e quer recuperar apenas os clientes que sejam do estado para onde houve uma venda. Neste caso você precisaria fazer um select também na tabela de vendas. Mas como condição para o primeiro resultado.
Veja que não é tão complicado quanto parece:
SELECT NOME, ESTADO FROM nome_da_tabela WHERE ESTADO IN ( SELECT ESTADO FROM tabela_de_vendas )
Também temos o uso da expressão IN. É como se você tivesse feito:
WHERE ESTADO = 'SC' AND ESTADO = 'RS' AND ESTADO = 'SP'
O comando IN transforma para:
WHERE ESTADO IN ( 'SC', 'RS', 'SP' )
E o subselect: SELECT ESTADO FROM tabela_de_vendas Retornaria esta lista de resultados.
Com algumas pequenas alterações você pode ir muito aquém. Pode simplificar retornando apenas um resultado do subselect. Como também pode formar instruções complexas dentro e fora do select.
Com um pouco de atenção, concentração e imaginação você consegue manipular muitos resultados.
Sucesso!
Loading...
simples e claro!
me ajudou valew!
Certo… me deu uma luz, alias, um sol inteiro. Obrigado