TOP

Instruction SQL EXISTS

SQL EXISTS descriptif

L'opérateur EXISTS est utilisé pour vérifier l'existence de tout enregistrement dans la sous-requête.

L'opérateur EXISTS renvoie TRUE si la sous-requête renvoie un ou plusieurs enregistrements.


EXISTS Syntaxe

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition)

Base de données de démonstration

Voici un exemple de la table "Products" ("Produits") de la base de données Northwind :

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18.00
2Chang1124 - 12 oz bottles19.00
3Aniseed Syrup1212 - 550 ml bottles10.00
4Chef Anton's Cajun Seasoning2248 - 6 oz jars22.00
5Chef Anton's Gumbo Mix2236 boxes21.35

Et l'échantillon du tableau "Suppliers" ("Fournisseurs") :

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountryPhone
1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonaEC1 4SDUK(171) 555-2222
2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA(100) 555-4822
3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA(313) 555-5735
4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan(03) 3555-5011
5Cooperativa de Quesos 'Las Cabras'Antonio del Valle SaavedraCalle del Rosal 4Oviedo33007Spain(98) 598 76 54

SQL EXISTS Exemples

La requête SQL suivante renvoie TRUE et contient une liste de fournisseurs dont le prix du produit est inférieur à 20 :

Run SQLSELECT SupplierName 
FROM Suppliers 
WHERE EXISTS (SELECT ProductName 
              FROM Products 
              WHERE Products.SupplierID = Suppliers.supplierID 
                AND Price < 20)

Une autre instruction SQL renvoie TRUE et contient une liste de fournisseurs avec un prix de produit égal à 22 :

Run SQLSELECT SupplierName 
FROM Suppliers 
WHERE EXISTS (SELECT ProductName 
              FROM Products 
              WHERE Products.SupplierID = Suppliers.supplierID 
                AND Price = 22)