Sommaire

Les sous-requêtes sous-SELECT

Il est possible d’insérer une requête Charger des données:imbriquer une requête dans une autre. Celle-ci peut se trouver après la clause WHERE ou remplacer une constante derrière un ordre IN ou EXISTS, par exemple.

Il existe deux types de sous-requêtes : imbriquées ou corrélées.

1. Les sous-requêtes imbriquées

En fonction de ce que peut ramener le sous-SELECT, celui-ci ne pourra pas être positionné n’importe où.

Si le résultat de la requête placé dans un sous-SELECT ne ramène qu’une seule ligne, on pourra utiliser la sous-requête à la place de n’importe quelle constante.

Par exemple, si on veut récupérer toutes les chambres qui ont 1 lit simple avec douche, il faut faire un sous-SELECT qui récupère l’identifiant de la table TYPESCHAMBRE qui correspond à la description 1 lit simple avec douche, puis vérifier que la colonne typechambre de la table CHAMBRES correspond à la valeur du sous-SELECT. 

Avant de tester la requête complète, il est préférable de tester la sous-requête en premier pour vérifier sa validité et que celle-ci ramène une seule ligne.

Exemple

SELECT idtypechambre FROM typeschambre 
where description = ’1 lit simple avec douche’; 

affiche :

IDTYPECHAMBRE   
-------------   
        ...