分享免费的编程资源和教程

网站首页 > 技术教程 正文

子查询关键字ANY、SOME、ALL、IN、EXISTS

goqiw 2024-10-16 11:29:55 技术教程 24 ℃ 0 评论


子查询关键字ANY、SOME、ALL、IN、EXISTS


1、ANY和SOME大于子查询中的任意一个,等同于大于子查询的最小值

select age from t1 WHERE age > ANY( select age from t2);

select age from t1 WHERE age > SOME( select age from t2);


2、ALL大于子查询中的每一个,等同于大于子查询的最大值

select age from t1 WHERE age > ALL( select age from t2);


3、EXISTS查询存在条件

select age from t1 WHERE EXISTS( select age from t2 WHERE age >30);


4、IN查询存在集合

select age from t1 WHERE age in ( select age from t2);



5、EXISTS和IN区别


先查询t2,再查询t1

EXPLAIN

select age from t1 WHERE EXISTS( select age from t2 WHERE age >20);


先查询t1,再查询t2

EXPLAIN

select age from t1 WHERE age in ( select age from t2 WHERE age >20);


当子查询结果集很大,而外部表较小的时候,Exists查询效率会优于IN。

当子查询结果集较小,而外部表很大的时候,IN的查询效率会优于Exists。

注意:网上说法不准确。“表的规模”不是看内部表和外部表,而是外部表和子查询结果集。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表