SQL - Sous-requêtes

Décembre 2016

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

MarqueModeleSerieNumeroCompteur
Renault18RL4698 SJ 45123450
RenaultKangooRL4568 HD 1656000
RenaultKangooRL6576 VE 3812000
Peugeot106KID7845 ZS 8375600
Peugeot309chorus7647 ABY 82189500
FiatPuntoGTI8941 UD 6180232
AudiA4Quattro7846 AZS 7521350
  • 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>SerieNumeroCompteur
RenaultKangooRL4568 HD 1656000
RenaultKangooRL6576 VE 3812000
Peugeot106KID7845 ZS 8375600
AudiA4Quattro7846 AZS 7521350

A voir également :

Ce document intitulé «  SQL - Sous-requêtes  » issu de CommentCaMarche (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.