correlated subquery and non-correlated subquery

子查询:嵌套在其他查询中的查询称之。

子查询又称内部,而包含子查询的语句称之外部查询(又称主查询)。

所有的子查询可以分为两类,即相关子查询和非相关子查询

1>非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。

2>相关子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。

故非相关子查询比相关子查询效率高

查询工资大于所有员工平均工资的员工姓名:

--非相关子查询

SELECT department_id, FIRST_NAME

FROM EMP

WHERE DEPARTMENT_ID = 110

AND SALARY > (SELECT AVG(SALARY)

FROM EMP

WHERE DEPARTMENT_ID = 110); –子查询是一个独立的查询

查询工资大于本部门的平均工资的员工姓名:

--相关子查询

SELECT E1.DEPARTMENT_ID , E1.FIRST_NAME

FROM EMP E1

WHERE SALARY > (SELECT AVG(SALARY)

FROM EMP E2

WHERE E2.DEPARTMENT_ID = E1.DEPARTMENT_ID) –依赖于外部查询结果

ORDER BY E1.DEPARTMENT_ID;

时间: 2024-10-11 08:29:19

correlated subquery and non-correlated subquery的相关文章

linux之SQL语句简明教程---Subquery

我们可以在一个 SQL 语句中放入另一个 SQL 语句.当我们在 WHERE 子句或 HAVING 子句中插入另一个 SQL 语句时,我们就有一个 subquery 的架构. Subquery 的作用是什么呢?第一,它可以被用来连接表格.另外,有的时候 subquery 是唯一能够连接两个表格的方式. Subquery 的语法如下: SELECT "栏位1" FROM "表格" WHERE "栏位2" [比较运算素] (SELECT "

MySQL Subquery Summary

子查询, 是指在SQL语句中内嵌了一个SELECT查询, 该SELECT称为内层查询, 包含SELECT的SQL称为外层查询. 其按照内层查询是否依赖于外层查询, 可以分为独立子查询和相关子查询. 为了演示方便, 有测试表tb1 和tb2, 数据如下: mysql> SELECT * FROM tb1; +------+ | col1 | +------+ |   3 | |   9 | +------+ 2 rows in set (0.00 sec) mysql> SELECT * FRO

MySQL优化—工欲善其事,必先利其器之EXPLAIN

转自:http://www.cnblogs.com/magialmoon/archive/2013/11/23/3439042.html mysql官方手册关于explain命名的说明文档:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html#explain_select_type 最近慢慢接触MySQL,了解如何优化它也迫在眉睫了,话说工欲善其事,必先利其器.最近我就打算了解下几个优化MySQL中经常用到的工具.今天就简单介绍下

看懂mysql执行计划--官方文档

原文地址:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html 9.8.2 EXPLAIN Output Format The EXPLAIN statement provides information about the execution plan for a SELECT statement. EXPLAIN returns a row of information for each table used in the S

mysql之explain

话说工欲善其事,必先利其器.今天就简单介绍下EXPLAIN. 内容导航 id select_type table type possible_keys key key_len ref rows Extra 环境准备 MySQL版本: 创建测试表 CREATE TABLE people( id bigint auto_increment primary key, zipcode char(32) not null default '', address varchar(128) not null

【MySQL】优化—工欲善其事,必先利其器之EXPLAIN

接触MySQL已经有一段时间了,了解如何优化它也迫在眉睫了,话说工欲善其事,必先利其器.最近我就打算了解下几个优化MySQL中经常用到的工具.今天就简单介绍下EXPLAIN. 环境准备 Explain 介绍 id select_type table type possible_keys key key_len ref rows Extra Explain extended 选项介绍 环境准备 1. MySQL版本 mysql> select version(); +---------------

mysql优化命令:explain

原文地址:http://www.cnblogs.com/magialmoon/p/3439042.html#id 在园子里偶然看到这篇文章,感觉十分不错,全面,思路清晰,因为自己也一直想做一些常用命令的总结,就先拿过来用了,感谢原作者! 1.测试环境 2.explain介绍 2.1 id 2.2 select_type 2.3 table 2.4 type 2.5 possible_keys 2.6 key 2.7 key_len 2.8 ref 2.9 rows 2.10 Extra 3.总结

[HIve - LanguageManual] Subqueries

Subqueries in the FROM Clause Subqueries in the WHERE Clause Subqueries in the FROM Clause SELECT ... FROM (subquery) name ... SELECT ... FROM (subquery) AS name ...   (Note: Only valid starting with Hive 0.13.0) Hive supports subqueries only in the

Oracle 面试宝典 - 7

1. What is a CO-RELATED SUBQUERY A CO-RELATED SUBQUERY is one that has a correlation name as table or view designator in the FROM clause of the outer query and the same correlation name as a qualifier of a search condition in the WHERE clause of the