Nested Loop Join和子查询
程序员文章站
2022-07-11 20:15:40
...
这2个是不同的概念,不要混淆在一起了
Nested Loop Join是From子句中的表的物理连接方式,逻辑连接方式是指Inner join, left/right outer join, full join
而delete from stu a
where rowid not in (select max(rowid)
from stu b
where a.name = b.name
and a.stno < b.stno);
中的子查询是不同的,这是子查询里面的“相关子查询”类型,相关子查询:子查询中使用了主查询中的某些字段,主查询每扫描一行都要执行一次子查询。跟Nested Loop Join虽然都有2层循环,但是不是同一概念。
SQL 基础--> 子查询
http://blog.csdn.net/leshami/article/details/5592002
Key Points
一、子查询
子查询就是位于SELECT、UPDATE、或DELETE语句中内部的查询
二、子查询的分类
单行子查询
返回零行或一行
多行子查询
返回一行或多行
多列子查询
返回多列
相关子查询
引用外部SQL语句中的一列或多列
子查询中使用了主查询中的某些字段,主查询每扫描一行都要执行一次子查询
嵌套子查询
位于其它子查询中的查询
三、子查询语法 */
SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table);
/*
子查询(内部查询)在执行主查询之前执行一次
然后主查询(外部查询)会使用该子查询的结果
四、子查询的规则
将子查询括在括号中
将子查询放置在比较条件的右侧
只有在执行排序Top-N分析时,子查询中才需要使用ORDER BY 子句
单行运算符用于单行子查询,多行运算符用于多行子查询
子查询
http://www.cnblogs.com/liunanjava/p/4227510.html
Key points
子查询就是指的在一个完整的查询语句之中,嵌套若干个不同功能的小查询,从而一起完成复杂查询的一种编写形式,为了让读者更加清楚子查询的概念。
子查询返回结果
子查询可以返回的数据类型一共分为四种:
单行单列:返回的是一个具体列的内容,可以理解为一个单值数据;
单行多列:返回一行数据中多个列的内容;
多行单列:返回多行记录之中同一列的内容,相当于给出了一个操作范围;
多行多列:查询返回的结果是一张临时表;
在WHERE子句中使用子查询
在WHERE子句之中处理单行单列子查询、多行单列子查询、单行多列子查询。
Nested Loop Join是From子句中的表的物理连接方式,逻辑连接方式是指Inner join, left/right outer join, full join
而delete from stu a
where rowid not in (select max(rowid)
from stu b
where a.name = b.name
and a.stno < b.stno);
中的子查询是不同的,这是子查询里面的“相关子查询”类型,相关子查询:子查询中使用了主查询中的某些字段,主查询每扫描一行都要执行一次子查询。跟Nested Loop Join虽然都有2层循环,但是不是同一概念。
SQL 基础--> 子查询
http://blog.csdn.net/leshami/article/details/5592002
Key Points
一、子查询
子查询就是位于SELECT、UPDATE、或DELETE语句中内部的查询
二、子查询的分类
单行子查询
返回零行或一行
多行子查询
返回一行或多行
多列子查询
返回多列
相关子查询
引用外部SQL语句中的一列或多列
子查询中使用了主查询中的某些字段,主查询每扫描一行都要执行一次子查询
嵌套子查询
位于其它子查询中的查询
三、子查询语法 */
SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table);
/*
子查询(内部查询)在执行主查询之前执行一次
然后主查询(外部查询)会使用该子查询的结果
四、子查询的规则
将子查询括在括号中
将子查询放置在比较条件的右侧
只有在执行排序Top-N分析时,子查询中才需要使用ORDER BY 子句
单行运算符用于单行子查询,多行运算符用于多行子查询
子查询
http://www.cnblogs.com/liunanjava/p/4227510.html
Key points
子查询就是指的在一个完整的查询语句之中,嵌套若干个不同功能的小查询,从而一起完成复杂查询的一种编写形式,为了让读者更加清楚子查询的概念。
子查询返回结果
子查询可以返回的数据类型一共分为四种:
单行单列:返回的是一个具体列的内容,可以理解为一个单值数据;
单行多列:返回一行数据中多个列的内容;
多行单列:返回多行记录之中同一列的内容,相当于给出了一个操作范围;
多行多列:查询返回的结果是一张临时表;
在WHERE子句中使用子查询
在WHERE子句之中处理单行单列子查询、多行单列子查询、单行多列子查询。
推荐阅读
-
MySQL利用profile分析慢sql详解(group left join效率高于子查询)
-
SQL联合查询inner join、outer join和cross join的区别详解
-
MySQL利用profile分析慢sql详解(group left join效率高于子查询)
-
ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效怎么解决?
-
oracle多表关联查询和子查询
-
MySQL优化之使用连接(join)代替子查询
-
MYSQL子查询和嵌套查询优化实例解析
-
Oracle单行子查询和多行子查询实例讲解
-
oracle子查询中使用some、any和all的案例
-
Oracle子查询相关内容(包含TOP-N查询和分页查询)