On appelle une requête imbriquée ou une sous requête ou encore une requête en cascade, une requête qui se trouve à l’intérieur d’une autre requête.
Une requête imbriquée peut renvoyer comme résultat une valeur scalaire (une seule ligne et une seule colonne), une colonne ou une table.
Il faut savoir qu’avec le langage SQL on peut utiliser des requêtes imbriquées sur autant des niveaux qu’on souhaite. Le plus important c’est maitriser ce qu’on est entrain de faire.
Supposons qu’une entreprise possède une base de données qui stocke des informations sur leurs clients et leurs paiements des factures. Dans ce cas, nous supposons que dans la leur base de données se trouve deux tables qui sont les suivants.
Nous avons déjà vu qu’il est possible de récupérer en même temps les informations d’une facture avec les informations d’un client lié à cette facture en utilisant la jointure de deux tables. Cependant nous allons faire la même chose mais en utilisant une requête imbriquée.
SELECT * FROM 'factures' WHERE id_client = (SELECT id FROM 'clients' LIMIT 1);
Avec cette requête, on va récupérer une facture là où l’id_client (table factures) = id (table clients).
Comme vous voyez très bien, ici la requête imbriquée se trouve entre parenthèses. Ces parenthèses sont quasi obligatoires.