SQL EXISTS 操作符

本章节讲解 SQL EXISTS 操作符 的用法。


SQL EXISTS 操作符

EXISTS 运算符用于测试子查询中是否存在的任何记录。

EXISTS 如果子查询返回一条或多条记录,则运算符返回 TRUE。

EXISTS 语法
  1. SELECT column_name(s)
  2. FROM table_name
  3. WHERE EXISTS
  4. (SELECT column_name FROM table_name WHERE condition );

数据库 Demo

以下是从 Northwind 示例数据库的 "Products" 表中选择的内容:

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

以及从 "Suppliers" 表中选择:

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountry
1Exotic LiquidCharlotte Cooper49 Gilbert St。LondonEC1 4SDUK
2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA
3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd。Ann Arbor48104USA
4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan

SQL EXISTS 实例

以下 SQL 语句返回 TRUE 并列出产品价格低于 20 的供应商:

实例
  1. SELECT SupplierName
  2. FROM Suppliers
  3. WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price < 20);

以下 SQL 语句返回 TRUE 并列出产品价格等于 22 的供应商:

实例
  1. SELECT SupplierName
  2. FROM Suppliers
  3. WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22);