Initiation à SQL

Utilisation d'une sous-requête

Des instructions SELECT supplémentaires peuvent être imbriquées dans une instruction SQL SELECT, dans la clause WHERE. Chaque nouvelle instruction SELECT lance une sous-requête.

Une sous-requête peut alors, à son tour, inclure une autre sous-requête dont le résultat est remplacé par la clause WHERE de la sous-requête d'origine. De plus, plusieurs conditions de recherche d'une clause WHERE peuvent inclure des sous-requêtes. La sous-requête peut faire référence à des tables et à des colonnes différentes de celles qu'utilise la requête principale.

L'instruction suivante sélectionne, dans la table ORG, la région et la ville de l'employé correspondant à l'ID 280 dans la table STAFF :

     SELECT DIVISION, LOCATION
        FROM ORG
        WHERE DEPTNUMB = (SELECT DEPT
                             FROM STAFF
                             WHERE ID = 280)

Quand il traite une instruction, DB2 commence par déterminer le résultat de la sous-requête. Le résultat de cette instruction est 66, l'employé correspondant à l'ID 280 se trouvant dans le service 66. Ensuite, pour obtenir le résultat final, il prend dans la table ORG la ligne dont la colonne DEPTNUMB a la valeur 66. Voici le résultat obtenu :

     DIVISION   LOCATION     
     ---------- -------------
     Western     San Francisco

Si vous utilisez une sous-requête, le gestionnaire de bases de données l'évalue et remplace directement la valeur résultant de la sous-requête dans la clause WHERE.

Pour plus de détails sur les sous-requêtes, consultez la section Sous-requêtes corrélées.



[ Début de page | Page précédente | Page suivante | Table des matières | Index ]