SQL常用数据过滤 - EXISTS运算符

时间:2024-09-30 19:18:04

        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
	* 
FROM
	data_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
	* 
FROM
	data_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
	* 
FROM
	data_learning.product aWHERE NOT EXISTS 
( SELECT * FROM data_learning.product_order b WHERE b.product_id = a.product_id AND b.sales_volume > 1000 );