SQL查询中的EXISTS运算符用于检查查询子句是否存在满足特定条件的记录,如果有一条或者多条记录存在,则返回True,否则返回False。
语法结构
SELECT column_name(s)FROM table_nameWHERE EXISTS(SELECT column_name FROM table_name WHERE condition);
-
EXISTS 直接跟在WHERE关键字之后,中间没有列名;
-
EXISTS后面接子查询;
-
子查询查询结果有一条或多条记录,则返回True。
实例
这里通过2张进行举例,数据表示例数据分别如下:
1.data_learning.product_order(商品销量表):
2.data_learning.product(商品信息表):
-- 问题1:请使用EXISTS运算符查询价格高于1000元的商品名称
SELECT*
FROMdata_learning.product aWHERE EXISTS
( SELECT * FROM data_learning.product b WHERE b.product_id = a.product_id AND b.price > 1000 );-- 问题2:请使用EXISTS运算符查询销量大于1000的商品名称。
SELECT*
FROMdata_learning.product aWHERE EXISTS
( SELECT * FROM data_learning.product_order b WHERE b.product_id = a.product_id AND b.sales_volume > 1000 );-- 问题3:请使用NOT EXISTS运算符查询销量不大于1000的商品名称
SELECT*
FROMdata_learning.product aWHERE NOT EXISTS
( SELECT * FROM data_learning.product_order b WHERE b.product_id = a.product_id AND b.sales_volume > 1000 );