Pourquoi les éléments suivants ne fonctionnent-ils pas?
SELECT name FROM (SELECT name FROM agentinformation)
Je suppose que ma compréhension de SQL est erronée, car j'aurais pensé que cela retournerait la même chose que
SELECT name FROM agentinformation
L'instruction select interne ne crée-t-elle pas un jeu de résultats que l'instruction SELECT externe interroge ensuite?
where
clause pour la requête externe?select
sans l'alias.La réponse fournie par Joe Stefanelli est déjà correcte.
Nous devons créer un alias de la sous-requête car une requête a besoin d'un objet table que nous obtiendrons en créant un alias pour la sous-requête. Conceptuellement, les résultats de la sous-requête sont substitués dans la requête externe. Comme nous avons besoin d'un objet table dans la requête externe, nous devons créer un alias de la requête interne.
Les instructions qui incluent une sous-requête prennent généralement l'une de ces formes:
Recherchez d'autres règles de sous - requête et types de sous - requête .
Plus d'exemples de sous-requêtes imbriquées.
IN / NOT IN - Cet opérateur prend la sortie de la requête interne après l'exécution de la requête interne qui peut être zéro ou plusieurs valeurs et l'envoie à la requête externe. La requête externe récupère ensuite toutes les lignes correspondantes [opérateur IN] ou non correspondantes [opérateur NOT IN].
ANY - L'opérateur [> ANY ou ANY prend la liste des valeurs produites par la requête interne et récupère toutes les valeurs supérieures à la valeur minimale de la liste. le
Par exemple> ANY (100,200,300), l'opérateur ANY récupérera toutes les valeurs supérieures à 100.
Par exemple> ALL (100,200,300), l'opérateur ALL récupérera toutes les valeurs supérieures à 300.
la source