Partager via


Créer des sous-requêtes (Visual Database Tools)

S'applique à : SQL Server

Vous pouvez utiliser les résultats d'une requête en tant que point de départ d'une autre requête. Vous pouvez utiliser les résultats d’une sous-requête en tant qu’instruction faisant appel à la fonction IN( ), à l’opérateur EXISTS ou à la clause FROM.

Vous pouvez créer une sous-requête en l'introduisant directement dans le volet SQL ou copier une requête et la coller dans un autre.

Pour définir une sous-requête dans le volet SQL

  1. Créez la requête de base.

  2. Dans le volet SQL, sélectionnez l’instruction SQL, puis utilisez la commande Copier pour déplacer la requête dans le Presse-papiers.

  3. Créez la requête, puis utilisez la commande Coller pour coller la première requête dans la clause WHERE ou FROM de cette nouvelle requête.

    Imaginez, par exemple, que vous soyez en présence de deux tables ( products et suppliers) et que vous souhaitiez créer une requête indiquant tous les produits de fournisseurs suédois. Créez la première requête relative à la table suppliers pour rechercher tous les fournisseurs suédois :

    SELECT supplier_id  
    FROM supplier  
    WHERE (country = 'Sweden')  
    

    Utilisez la commande Copier pour copier cette requête dans le Presse-papiers. Créez la deuxième requête relative à la table products répertoriant toutes les informations nécessaires sur les produits :

    SELECT product_id, supplier_id, product_name  
    FROM products  
    

    Dans le volet SQL, ajoutez une clause WHERE à la deuxième requête, puis collez la première requête à partir du Presse-papiers. Ajoutez des parenthèses autour de la première requête afin d'obtenir le résultat final suivant :

    SELECT product_id, supplier_id, product_name  
    FROM products  
    WHERE supplier_id IN  
       (SELECT supplier_id  
      FROM supplier  
      WHERE (country = 'Sweden'))  
    

Voir aussi

Types de requêtes pris en charge (Visual Database Tools)
Spécifier des critères de recherche (Visual Database Tools)