Chapitre 6 : Sous-requêtes & synthèse
L'Ultime Complot
Une sous-requête est une requête SELECT imbriquée entre parenthèses dans une autre. Elle permet de répondre à une question en plusieurs temps : d'abord calculer un ensemble ou une valeur, ensuite s'en servir.
Sous-requête qui renvoie UNE valeur
Si la sous-requête renvoie une seule valeur (une ligne, une colonne), tu peux l'utiliser comme n'importe quelle constante dans une comparaison.
SELECT personne_id, solde
FROM comptes_bancaires
WHERE solde > (SELECT AVG(solde) FROM comptes_bancaires);IN (SELECT ...) : appartenir à un ensemble
Quand la sous-requête renvoie une colonne de plusieurs lignes, on teste l'appartenance avec IN. C'est souvent l'alternative à une jointure quand on ne veut que les colonnes d'une seule table.
SELECT nom, prenom
FROM personnes
WHERE id IN (SELECT appelant_id FROM appels);Méthode : construire pas à pas
- 1. Écris et teste la requête interne toute seule.
- 2. Vérifie que le résultat est bien une valeur (ou une colonne) cohérente.
- 3. Place-la entre parenthèses dans la requête externe.
- 4. Combine plusieurs conditions avec
AND: chaqueIN (...)est un critère indépendant.
À toi de jouer : Exercice guidé
Affiche le nom et le prénom des personnes dont l'alibi a été vérifié (verifie = 1). Complète les ___.