Por que o seguinte não funciona?
SELECT name FROM (SELECT name FROM agentinformation)
Acho que meu entendimento do SQL está errado, porque eu pensaria que isso retornaria a mesma coisa que
SELECT name FROM agentinformation
A instrução de seleção interna não cria um conjunto de resultados que a instrução externa SELECT consulta?
where
cláusula iria para a consulta externa?select
sem o alias.A resposta fornecida por Joe Stefanelli já está correta.
Precisamos fazer um alias da subconsulta porque uma consulta precisa de um objeto de tabela que obteremos ao criar um alias para a subconsulta. Conceitualmente, os resultados da subconsulta são substituídos na consulta externa. Como precisamos de um objeto de tabela na consulta externa, precisamos criar um alias da consulta interna.
Instruções que incluem uma subconsulta geralmente assumem uma destas formas:
Verifique se há mais regras de subconsulta e tipos de subconsulta .
Mais exemplos de subconsultas aninhadas.
IN / NOT IN - Este operador obtém a saída da consulta interna após a consulta interna ser executada, que pode ter zero ou mais valores, e a envia para a consulta externa. A consulta externa busca todas as linhas correspondentes [operador IN] ou linhas não correspondentes [operador NOT IN].
ANY - [> QUALQUER operador ANY ou ANY pega a lista de valores produzidos pela consulta interna e busca todos os valores maiores que o valor mínimo da lista. o
por exemplo,> QUALQUER (100.200.300), o operador QUALQUER buscará todos os valores maiores que 100.
por exemplo,> ALL (100,200,300), o operador ALL buscará todos os valores maiores que 300.
fonte