SQL EXISTS 运算符
SQL EXISTS 运算符
EXISTS运算符用于检查子查询中是否存在任何记录。
如果子查询返回一个或多个记录,则EXISTS运算符返回true。
EXISTS 语法
SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHEREcondition);
演示数据库
以下是Northwind示例数据库中“Products”表的选择:
ProductID |
ProductName |
SupplierID |
CategoryID |
Unit |
Price |
1 |
Chais |
1 |
1 |
10 boxes x 20 bags |
18 |
2 |
Chang |
1 |
1 |
24 - 12 oz bottles |
19 |
3 |
Aniseed Syrup |
1 |
2 |
12 - 550 ml bottles |
10 |
4 |
Chef Anton's Cajun Seasoning |
2 |
2 |
48 - 6 oz jars |
22 |
5 |
Chef Anton's Gumbo Mix |
2 |
2 |
36 boxes |
21.35 |
并从“Suppliers”表中选择:
SupplierID |
SupplierName |
ContactName |
Address |
City |
PostalCode |
Country |
1 |
Exotic Liquid |
Charlotte Cooper |
49 Gilbert St. |
London |
EC1 4SD |
UK |
2 |
New Orleans Cajun Delights |
Shelley Burke |
P.O. Box 78934 |
New Orleans |
70117 |
USA |
3 |
Grandma Kelly's Homestead |
Regina Murphy |
707 Oxford Rd. |
Ann Arbor |
48104 |
USA |
4 |
Tokyo Traders |
Yoshi Nagase |
9-8 Sekimai Musashino-shi |
Tokyo |
100 |
Japan |
SQL EXISTS 实例
以下SQL语句返回产品价格低于20的供应商:
实例
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price < 20);
运行实例»
以下SQL语句返回产品价格等于22的供应商:
实例
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22);
运行实例»