SQL - Sous-requêtes
Expression des sous-requêtes
Effectuer une sous-requête consiste à effectuer une requête à l'intérieur d'une autre, ou en d'autres termes d'utiliser une requête afin d'en réaliser une autre (on entend parfois le terme de requêtes en cascade).
Une sous-requête doit être placée à la suite d'une clause WHERE ou HAVING, et doit remplacer une constante ou un groupe de constantes qui permettraient en temps normal d'exprimer la qualification.
- lorsque la sous-requête remplace une constante utilisée avec des opérateurs classiques, elle doit obligatoirement renvoyer une seule réponse (une table d'une ligne et une colonne). Par exemple :
SELECT ---- FROM ---- WHERE ---- < (SELECT ---- FROM ----)
- lorsque la sous-requête remplace une constante utilisée dans une expression mettant en jeu les opérateurs IN, EXISTS, ALL ou ANY, elle doit obligatoirement renvoyer une seule ligne.
SELECT ---- FROM ---- WHERE ---- IN (SELECT ---- FROM ----)
Soit la table suivante :
Table Occaz
Marque | Modele | Serie | Numero | Compteur |
---|---|---|---|---|
Renault | 18 | RL | 4698 SJ 45 | 123450 |
Renault | Kangoo | RL | 4568 HD 16 | 56000 |
Renault | Kangoo | RL | 6576 VE 38 | 12000 |
Peugeot | 106 | KID | 7845 ZS 83 | 75600 |
Peugeot | 309 | chorus | 7647 ABY 82 | 189500 |
Fiat | Punto | GTI | 8941 UD 61 | 80232 |
Audi | A4 | Quattro | 7846 AZS 75 | 21350 |
- La sélection des voitures dont le compteur est inférieur à la moyenne se fait par l'instruction :
SELECT * FROM OCCAZ WHERE Compteur < (SELECT AVG(Compteur) FROM OCCAZ)
Résultat
Marque</span> | Modele</span> | Serie | Numero | Compteur |
---|---|---|---|---|
Renault | Kangoo | RL | 4568 HD 16 | 56000 |
Renault | Kangoo | RL | 6576 VE 38 | 12000 |
Peugeot | 106 | KID | 7845 ZS 83 | 75600 |
Audi | A4 | Quattro | 7846 AZS 75 | 21350 |
Ce document intitulé « SQL - Sous-requêtes » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.