SQL内外层嵌套子查询

先逐行扫描外部查询的每一行,让每一行与内部查询的表进行对比,满足内部查询where条件的返回真,不满足的返回假。

提醒:单独执行内部查询时会报错。

首先执行一次外部查询

对应外部查询的每一行分别执行一次子查询,而且每次执行子查询时都会引用外部查询中当前行的值。

使用子查询的结果来确定外部查询的结果集。

例:

不同职工经手订单金额最大的订单信息

select a.* from 订购单 a where 金额 = (select max(金额) from 订购单 where 职工号=a.职工号)

不同仓库的最大工资对应的职工信息

select a.* from 职工 a where 工资 = (select max(工资) from 职工 where 仓库号 = a.仓库号)

时间: 2025-01-03 19:11:49

SQL内外层嵌套子查询的相关文章

Sql学习笔记4——嵌套子查询(下)

5)from子句中的子查询 因为SQL任何select-from-where表达式返回的都是关系,所以from子句中允许使用子查询表达式. 考虑查询“找出平均工资超过42000美元的那些系中教师的平均工资”,之前我们用having子句来书写该查询. 现在我们不用having子句,如下: select dept_name,avg_salary from(select dept_name,avg(salary) as avg_salary from instructor group by dept_

Sql学习笔记4——嵌套子查询(上)

嵌套子查询 子查询是嵌套在另一个查询中的select-from-where表达式.子查询嵌套在where子句中时,通常用于对集合的成员资格.集合的比较以及集合的基数进行检查. 1.集合成员资格 SQL允许测试元组在关系中的成员资格.连接词in测试元组是否是集合中的成员,集合是由select子句产生的一组值构成的.连接词not in测试元组是否不是集合中的成员. 考虑“找出在2009年秋季和2010年春季学期同时开课的所有课程.”按之前所学知识,可以通过对两个集合进行并运算来书写该查询.如下: (

SQL嵌套子查询和相关子查询的执行过程有什么区别(推荐)

SQLServer子查询可以分为 相关子查询 和 嵌套子查询 两类.前提, 假设Books表如下: 类编号 图书名 出版社 价格 -------------------------------------------------------- 2 c#高级应用 圣通出版 23.00 2 Jsp开发应用 机械出版社 45.00 3 高等数学 济南出版社 25.00 3 疯狂英语 清华大学出版社 32.00 嵌套子查询的执行不依赖与外部的查询. 执行过程: (1)执行子查询,其结果不被显示,而是传递

【数据库(二)】嵌套子查询

嵌套子查询 集合成员资格 集合的比较 空关系测试 重复元组存在性测试 from子句的子查询 with子句 [例子]找出在2009年秋季,和2010年春季通识开课的所有课程 select distinct course_id from section where semester = 'Fall'and year=2009 and course_id in  (select course_id from section where semester = 'Spring' and year = 20

DBMS-SQL、聚集函数、嵌套子查询、数据库修改

SQL SQL:结构化查询语言,分为以下几个部分. ·数据定义语言(Data-Definition Language, DDL):SQL DDL提供定义定义关系模式.删除关系以及修改关系模式的命令. ·数据操纵语言(Data-Manipulation Language, DML):SQL DML包括查询语言,以及在数据库中插入元组.删除元组和修改元组的命令. ·完整性(integrity):SQL DDL包括定义完整性约束的命令,保存在数据库中的数据必须满足所定义的完整性约束,不允许破坏完整性约

嵌套子查询和关联子查询

嵌套子查询:  1. 内部查询只处理一次 2. 与null比较,总得到null 3.先进行内部查询,然后再进行外部查询 关联子查询: 1.外部查询得到的每条记录传入到内部查询 2.内部查询基于外部查询传入的值 3.内部查询从其结果中把值传回到外部查询,外部查询使用这些值来完成其处理 什么时候使用? 外部查询返回较少记录时,关联子查询比嵌套子查询效率高; 内部查询返回较少记录时,嵌套子查询比关联子查询效率高. in和exists select * from A where cc in (selec

Yii2.0ActiveRecord嵌套子查询(AR子查询)

yii2.0的ActiveRecord是可以嵌套子查询的. 比如从一个子查询里面筛选数据. 首先实例化出来一个Query对象,代表子查询. $subQuery = new \yii\db\Query(); $subQuery->from('tableA')->where(['>=', 'id', 10]); 假如UserModel是一个AR: $list = UserModel::find()->from(['tmpA' => $subQuery])->all(); f

SQL语句:子查询

一,子查询定义: 子查询就是嵌套在主查询中的查询. 子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY. 但并不是每个位置嵌套子查询都是有意义并实用的. 二,子查询的返回: 一个子查询会返回一个标量(单一值).一个行.一个列或一个表(一行或多行及一列或多列).这些子查询被称为标量.列.行和表子查询 1,单行单列,聚合(标量): 返回的结果集为单个的子查询,叫做单行子查询.单行比较符有: =. >.>=.<.<=

sql example 9 -- 子查询

sql example 9 – 子查询 sql example 9 – 子查询 数据库准备 create table student ( id int auto_increment primary key, name varchar(10) ); create table scores ( id int auto_increment PRIMARY key, score int default 0, foreign key (id) references student(id) on delet