Domanda

Perché non lo fa il seguente lavoro?

SELECT name FROM (SELECT name FROM agentinformation)

Credo che la mia comprensione di SQL è sbagliato, perché avrei pensato che questo sarebbe tornata la stessa cosa di

SELECT name FROM agentinformation

non l'istruzione SELECT interna creare una lista di prodotti che l'istruzione SELECT esterna interroga allora?

È stato utile?

Soluzione

È necessario alias subquery.

SELECT name FROM (SELECT name FROM agentinformation) a  

o per essere più esplicito

SELECT a.name FROM (SELECT name FROM agentinformation) a  

Altri suggerimenti

Risposta fornito da Joe Stefanelli è già corretta.

SELECT name FROM (SELECT name FROM agentinformation) as a  

Abbiamo bisogno di fare alias sottoquery perché interrogazione ha bisogno oggetto tabella che avremo da fare un alias sottoquery. Concettualmente, i risultati subquery sono sostituiti nella query esterna. Come abbiamo bisogno oggetto tabella nella interrogazione esterna, è necessario creare un alias di query interna.

Le dichiarazioni che includono una sottoquery richiede solitamente uno dei seguenti formati:

  • WHERE [NOT] IN (subquery)
  • DOVE espressione comparison_operator [QUALSIASI | ALL] (subquery)
  • dove [NOT] ESISTE (subquery)

Verificare la presenza di più subquery governa e subquery tipi .

Altri esempi di nidificati sottoquery.

  1. IN / NOT IN - Questo operatore prende l'output di query interna dopo query interna viene eseguito che può essere zero o più valori e trasmetterli a query esterna. La query esterna poi recupera tutta la corrispondenza [IN operator] o non corrispondenza non [NOT IN operator] righe.

  2. QUALSIASI - [> QUALSIASI o qualsiasi operatore prende la lista dei valori prodotti da query interna e recupera tutti i valori che sono superiori al valore minimo della lista. Il

es. > ANY (100.200.300), l'operatore ANY preleverà tutti i valori superiori a 100.

  1. ALL - [> ALL o ALL operatore preleva l'elenco dei valori prodotti da query interna e recupera tutti i valori che sono maggiori del massimo della lista. Il

es. > ALL (100.200.300), l'operatore ALL preleverà tutti i valori superiori a 300.

  1. ESISTE - La parola chiave EXISTS produce un valore booleano [TRUE / FALSE]. Questo esiste verifica l'esistenza delle righe restituite dalla query sub.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top