TOP

SQL EXISTS ステートメント

SQL EXISTS 説明

EXISTS 演算子は、サブクエリ内のレコードの存在を確認するために使用されます。

サブクエリが 1 つ以上のレコードを返す場合、EXISTS 演算子は TRUE を返します。


EXISTS 構文

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

デモデータベース

以下は、Northwind データベースの "Products" ("Products") テーブルのサンプルです。

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

テーブル「Suppliers」(「サプライヤー」) のサンプル:

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 の例

次の SQL クエリは TRUE を返し、製品価格が 20 未満のサプライヤーのリストが含まれています。

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

別の SQL ステートメントは TRUE を返し、製品価格が 22 であるサプライヤーのリストが含まれます。

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