SQL Sous-requête | |
Il est possible d’imbriquer une instruction SQL dans une autre. Lorsque cette opération est effectuée sur les instructions WHERE ou HAVING, nous obtenons une construction de sous-requête. La syntaxe est comme suit: SELECT "nom de colonne 1"
FROM "nom de table 1" WHERE "nom de colonne 2" [opérateur de comparaison] (SELECT "nom de colonne 3" FROM "nom de table 2" WHERE "condition"); [opérateur de comparaison] peut être un opérateur d’égalité tel que =, >, <, >=, <=. Il peut être aussi un opérateur de texte tel que "LIKE". La partie en rouge est considérée comme "requête interne", alors que la partie en vert est considérée comme "requête externe". Utilicemos el mismo ejemplo mostrado para ilustrar las uniones SQL: Table Store_Information
Table Geography
et en utilisant une sous-requête pour trouver les ventes de tous les magasins dans la région West (Ouest), il faudra utiliser l’instruction SQL suivante : SELECT SUM(Sales) FROM Store_Information
WHERE Store_Name IN (SELECT Store_Name FROM Geography WHERE Region_Name = 'West'); Résultat:
Dans cet exemple, au lieu de joindre directement les deux tables et d’ajouter seulement le montant des ventes des magasins de la région West (Ouest), nous allons d’abord utiliser la sous-requête pour trouver les magasins situés dans la région West (Ouest), puis additionner le montant des ventes de ces magasins. Dans l’exemple ci-dessus, la requête interne est d’abord exécutée, puis le résultat est envoyé à la requête externe. Ce type de sous-requête est appelé sous-requête simple. Si la requête interne dépend de la requête externe, nous aurons une sous-requête corrélée. Vous trouverez ci-dessous un exemple de sous-requête corrélée : SELECT SUM(a1.Sales) FROM Store_Information a1
WHERE a1.Store_Name IN (SELECT Store_Name FROM Geography a2 WHERE a2.Store_Name = a1.Store_Name); Notez la clause WHERE dans la requête interne, où la condition nécessite une table de la requête externe.
Copyright © 2024 1keydata.com Tous droits réservés |