Une sous-requête est une requête imbriquée dans une autre requête. Pour illustrer son mode de fonctionnement, j'utilise la table FavColors, qui comporte deux colonnes : Person et FavoriteColor. La figure 4 contient la table et l'instruction SQL qui la crée. Supposons que je recherche la liste des personnes dont la
Introduction aux sous-requêtes
couleur favorite est également appréciée par d’autres personnes du groupe.
Par » appréciée « , nous entendons une couleur que plus de deux personnes dans
la table choisissent comme leur couleur favorite. Je peux utiliser une sous-requête
et la requête la contenant, pour trouver d’abord la couleur favorite de chaque
personne puis renvoyer les lignes avec les couleurs choisies par plus de deux
personnes. La requête
Select *
From FavColors OuterRow
Where 3 <=
( Select Count( * )
From FavColors InnerRow
Where OuterRow.FavoriteColor
= InnerRow.FavoriteColor )
Un nom de corrélation est un nom unique qui qualifie un
nom de colonne
(avec sa sous-requête imbriquée) produit la table de résultat illustrée en figure
5, nommant trois personnes ayant choisi le jaune (yellow) et trois ayant choisi
le marron (brown) comme couleur favorite, rendant ces couleurs « appréciées »
d’après notre définition. Analysons maintenant la requête et sa sous-requête.
La clause Select * de la requête précise que toutes les colonnes définies dans
la table de base doivent apparaître dans la table de résultats. La clause From
de la requête contient le nom de la table (FavColors) suivi par le nom de corrélation
OuterRow. Un nom de corrélation est un nom unique qui qualifie un nom de colonne
(nous y reviendrons dans quelques instants). Dans ce cas, le nom de colonne
qualifié est FavoriteColor. La clause Where de la requête renvoie toutes les
lignes dans lesquelles 3 est inférieur ou égal au résultat de la sous-requête.
Comme 3 est une valeur unique, la sous-requête doit aussi renvoyer une valeur
unique.
La sous-requête, placée entre parenthèses d’après les règles de la syntaxe SQL,
utilise la fonction Count pour trouver la valeur unique qui exprime le nombre
de lignes contenant la même couleur favorite. La fonction Count est une fonction
de colonne SQL opérant sur des colonnes au travers de plusieurs lignes et renvoie
le nombre de lignes satisfaisant à la condition posée dans une requête. Les
fonctions de colonne SQL, y compris la fonction Count, renvoient toujours une
valeur unique. Ainsi, la requête
Select Count( * )
From FavColors
Where FavoriteColor = ‘Green’
renvoie le nombre 2 parce qu’il y a deux lignes dans la table FavColors ayant
la valeur Green pour la colonne FavoriteColor.
L’utilisation de Count dans notre sous-requête est légèrement plus compliquée
que cet exemple simple. Notons que la clause From de la sous-requête utilise
la table FavColors et le nom de corrélation InnerRow. Quand la sous-requête
s’exécute, les requêtes externes et internes ont une ligne prise en considération
en même temps. La clause Where de la sous-requête (c’est-à -dire la requête interne)
utilise les noms de corrélation pour qualifier la ligne comme externe ou interne
lorsqu’elle fait référence au nom de colonne FavoriteColor. Pour chaque ligne
de la table (le OuterRow de la requête externe), la fonction Count compare la
valeur FavoriteColor de cette ligne (OuterRow.FavoriteColor) à la valeur FavoriteColor
de chaque ligne dans la table (InnerRow.FavoriteColor). Elle compte le nombre
de correspondances et renvoie le comptage à la requête externe. La clause Where
de la requête externe indique que si le nombre renvoyé par la sous-requête est
supérieur à 2, la ligne en cours d’évaluation dans la requête externe est sélectionnée.
Autrement dit, la requête renvoie toutes les lignes contenant une couleur que
plus de deux personnes ont choisie comme leur favorite.
C’est tout pour l’instant. Dans un prochain article, nous verrons d’autres utilisations
des sous-requêtes.
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Activer la mise en veille prolongée dans Windows 10
- Et si les clients n’avaient plus le choix ?
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
Les plus consultés sur iTPro.fr
- Vers l’Industrie 5.0 : quand l’IA agentique change la donne
- Ready For IT 2026 : IA industrialisée, deepfakes et Prix Start-up au cœur des enjeux
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Ready For IT 2026 : quand l’accélération de l’innovation redessine les priorités des décideurs IT
Articles les + lus
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
À la une de la chaîne Tech
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
