Leçon 30 : Sous-Requêtes (Requêtes Imbriquées)
Une Sous-Requête (ou Requête Interne, Requête Imbriquée, Nested Query) est une instruction SELECT intégrée à l'intérieur d'une autre requête SQL. Elles sont utilisées pour effectuer des opérations qui dépendent du résultat d'une autre requête.
Où les Sous-Requêtes Sont Utilisées
Les sous-requêtes peuvent être utilisées à plusieurs endroits :
- Dans la clause WHERE (le plus courant) : Pour filtrer la requête externe.
- Dans la clause SELECT : Pour renvoyer une seule valeur scalaire (sous-requête scalaire).
- Dans la clause FROM : Pour traiter le résultat de la sous-requête comme une table temporaire (Table Dérivée—Derived Table).
Exemple : Sous-Requête dans la Clause WHERE
Trouver tous les produits dont le prix est supérieur au prix moyen de tous les produits.
- Étape 1 (Requête Interne) : Trouver le prix moyen.
- Étape 2 (Requête Externe) : Utiliser cette moyenne pour filtrer les produits.
sql SELECT Name, Price FROM Products WHERE Price > ( SELECT AVG(Price) FROM Products -- Requête Interne );
Utilisation de IN avec les Sous-Requêtes
Si la requête interne renvoie une liste de valeurs (plus d'une ligne), vous devez utiliser l'opérateur IN.
Exemple : Trouver les Employés dans des Départements Spécifiques
Trouver tous les employés qui travaillent dans des départements situés à 'New York'.
sql SELECT Name FROM Employees WHERE DeptID IN ( SELECT DeptID FROM Departments WHERE Location = 'New York' );