用SQL进行嵌套查询

如何使用SQL Server数据库嵌套子查询 很多SQL Server程序员对子查询(subqueries)的使用感到困惑,尤其对于嵌套子查询(即子查询中包含一个子查询)。现在,就让我们追本溯源地探究这个问题。 立即下载
   在select查询语句里可以嵌入select查询语句,称为嵌套查询。有些书上将内嵌的select语句称为子查询,子查询形成的结果又成为父查询的条件。
    子查询可以嵌套多层,子查询操作的数据表可以是父查询不操作的数据表。子查询中不能有order by分组语句。
4.4.1 简单嵌套查询
    在【命令编辑区】执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal>=(select sal from scott.emp where ename='WARD');     ―――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.19所示的结果。
    【参见光盘文件】:/第4章/4.4/441.sql。

    在这段代码中,子查询select sal from scott.emp where ename='WARD'的含义是从emp数据表中查询姓名为WARD的员工的薪水,父查询的含义是要找出emp数据表中薪水大于等于WARD的薪水的员工。上面的查询过程等价于两步的执行过程。
    (1)执行“select sal from scott.emp where ename='WARD'”,得出sal=1250;
    (2)执行“select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal>=1250;”
4.4.2 带【in】的嵌套查询
    在【命令编辑区】执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal in (select sal from scott.emp where     ename='WARD');
    ―――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.20所示的结果。
    【参见光盘文件】:/第4章/4.4/442.sql。

    上述语句完成的是查询薪水和WARD相等的员工,也可以使用【not in】来进行查询。 4.4.3 带【any】的嵌套查询
    在【命令编辑区】执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal >any(select sal from scott.emp where     job='MANAGER');
    ―――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.21所示的结果。
    【参见光盘文件】:/第4章/4.4/443.sql。

    带any的查询过程等价于两步的执行过程。
    (1)执行“select sal from scott.emp where job='MANAGER'”,其结果如图4.22所示。
    【参见光盘文件】:/第4章/4.4/443-1.sql。

    (2)查询到3个薪水值2975、2850和2450,父查询执行下列语句。
    【参见光盘文件】:/第4章/4.4/443-2.sql。
    ――――――――――――――――――――――――――――――――――――――
    select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal >2975 or sal>2850 or sal>2450;     ――――――――――――――――――――――――――――――――――――――
4.4.4 带【some】的嵌套查询
    在【命令编辑区】执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal =some(select sal from scott.emp where     job='MANAGER');
    ―――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.23所示的结果。
    【参见光盘文件】:/第4章/4.4/444.sql。
    带some的嵌套查询与any的步骤相同。
    (1)子查询,执行“select sal from scott.emp where job='MANAGER'”,其结果如图4.22所示。
    (2)父查询执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal =2975 or sal=2850 or sal=2450;     ―――――――――――――――――――――――――――――――――――――
    【参见光盘文件】:/第4章/4.4/444-2.sql。

    带【any】的嵌套查询和【some】的嵌套查询功能是一样的。早期的SQL仅仅允许使用【any】,后来的版本为了和英语的【any】相区分,引入了【some】,同时还保留了【any】关键词。
4.4.5 带【all】的嵌套查询
    在【命令编辑区】执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal >all(select sal from scott.emp where     job='MANAGER');
    ―――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.24所示的结果。
    【参见光盘文件】:/第4章/4.4/445.sql。

    带all的嵌套查询与【some】的步骤相同。
    (1)子查询,结果如图4.22所示。
    (2)父查询执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    select emp.empno,emp.ename,emp.job,emp.sal from scott.emp where sal >2975 and sal>2850 and sal>2450;
    ―――――――――――――――――――――――――――――――――――――
    【参见光盘文件】:/第4章/4.4/445-2.sql。
4.4.6 带【exists】的嵌套查询
    在【命令编辑区】执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    select emp.empno,emp.ename,emp.job,emp.sal from scott.emp,scott.dept where exists (select * from scott.emp where     scott.emp.deptno=scott.dept.deptno);
    ―――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.25所示的结果。
    【参见光盘文件】:/第4章/4.4/446.sql。

4.4.7 并操作的嵌套查询
    并操作就是集合中并集的概念。属于集合A或集合B的元素总和就是并集。 在【命令编辑区】执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
     (select deptno from scott.emp) union (select deptno from scott.dept);     ―――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.26所示的结果。
    【参见光盘文件】:/第4章/4.4/447.sql。

4.4.8 交操作的嵌套查询
    交操作就是集合中交集的概念。属于集合A且属于集合B的元素总和就是交集。 在【命令编辑区】执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    (select deptno from scott.emp) intersect (select deptno from scott.dept);     ―――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.27所示的结果。
    【参见光盘文件】:/第4章/4.4/448.sql。

4.4.9 差操作的嵌套查询
    差操作就是集合中差集的概念。属于集合A且不属于集合B的元素总和就是差集。
    在【命令编辑区】执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    (select deptno from scott.dept) minus (select deptno from scott.emp);
    ―――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.28所示的结果。
    【参见光盘文件】:/第4章/4.4/449.sql。

    并、交和差操作的嵌套查询要求属性具有相同的定义,包括类型和取值范围。
SQL练习4 – SELECT(连接查询、嵌套查询) 一、连接查询 连接查询:同时涉及两个以上的表的查询 [.] [.] 连接字段:连接条件中的列名称 如:Sno为上面例子中的连接字段 注意:连接字段类型必须是可比的,但名字不必相同 1.等值与非等值连接查询 (等值连接:连接运算符为= ) [例 3.49] 查询每个学生及其选修课程的情况 SELECT Student.*, SC.* FROM Student, SC WHERE Student.Sno = SC.Sno; 相当于对比关系代数中的等值连接,通过学生学号将Student表与SC表连接起来。 [例 3.50] 对[ 立即下载

相关推荐

数据库作业7:SQL练习4 – SELECT(连接查询、嵌套查询)

数据查询2—连接查询:同时涉及两个以上的表的查询 连接条件:用来连接两个表的条件 [.] [.] 连接字段:连接条件中的列名称(注意:连接字段类型必须是可比的,但名字不必相同) 连接查询—(1)等值与非等值连接查询:等值连接:连接运算符为=(对比关系代数中的等值连接) 【例3.49】查询每个学生及其选修课程的情况. SELECT Student.*,SC.* FROM Student,SC WHERE Student.Sno=SC.Sno; 从两个表中查询,需要先用笛卡尔积将两个表连接起来,连接之后再找出符合条件相等的。 【思考】:如何用SQL表达笛卡尔积×? SELECT Stu

sql嵌套查询语句练习

5.7 找出没有使用天津产的零件的工程号 select Jno from j where not exists (select * from spj where spj.jno = j.jno and sno in (select sno from s where city='天津')); 4.3 求供应工程j1零件为红色的供应商号码sno select sno from spj wher...

偶尔想看云飞的博客 713

ADS AEL脚本进阶:参数化电感与变压器的自动化设计

本文深入探讨了如何利用ADS AEL脚本实现电感与变压器的参数化与自动化设计。通过构建可复用的函数库、封装高级设计流程、集成DRC检查与性能预估,将繁琐的手动绘制升级为高效的智能设计引擎,并最终通过创建GUI工具降低使用门槛,大幅提升射频/微波电路设计效率。

weixin_29309785的博客 203

数据库作业6:SQL Server的部分操作(嵌套查询)

操作目录八.嵌套查询1.带有IN谓词的子查询2.带有比较运算符的子查询3.带有 ANY(SOME)或ALL谓词的子查询4.带有EXISTS谓词的子查询 八.嵌套查询 不相关子查询 :子查询的查询条件不依赖于父查询。即为“由里向外”处理,先执行子查询,子查询的结果用于建立父查询的查找条件。 相关子查询 :子查询的查询条件依赖于父查询。 1.带有IN谓词的子查询 【例3.55】查询与“刘晨”在同一个系学习的学生。 ①.分步查询: 首先确定刘晨所在系名 SELECT Sdept FROM Student

popular的博客 1017

S7-1200模拟量

将两种不同的金属或合金金属焊接起来,构成一个闭合回路,利用温差电动势来测量温度,当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势--热电动势,这就是所谓的塞贝克效应(seebeck effect)。温差越大,热电动势越高。热电偶是有正负极性的,所以需要确保导线连接到正确的极性,否则会造成明显的测量误差。为了使温度补偿达到最佳效果,必须将热电偶模块安装在温度稳定的环境中简述:两种金属,每一种金属随温度变化是不同的,出现温差--由俩金属构成的回路就会有电流经过,因此两端形成热电动势。

王阿妹小天才的博客 2589

文献阅读:SAR像素偏移的性能改进An Improvement of the Performance of SAR Offset Tracking Approach

像素偏移追踪POT文献阅读

weixin_56301271的博客 341

SQL语句 - 嵌套查询(SQLServer)

嵌套查询的意思是,一个查询语句()查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于语句或其他子查询中。

极客神殿 2万+

电化学阻抗谱(EIS)在锂离子电池中的应用

摘要电化学阻抗谱(electrochemical impedance spectroscopy, EIS)是一种重要的电化学测试方法,在锂离子电池动力学反应机理研究及动力学参数测量等方面具有广泛的应用。在锂离子电池运行过程中,各反应步骤的动力学参数及时间常数不同,而EIS可以在较宽的频率范围内对体系施加小幅正弦激励信号,使得在特定频率下突出特定时间常数的电极过程,从而将复杂的电极过程分离,实现单一电极过程动力学的分析。通过对交流阻抗信息的研究,也可以为锂离子电池及其他电池的应用与管理、电化学过程设计及电极材

qiushireader的博客 2649

SQL语句 - 嵌套查询

SQL语句 - 嵌套查询    嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。   嵌套查询的工作方式是:先处...

ajwqb06628的专栏 3246

[cryoEM] cryoSPARC简介

cryoSPARC系统结构概述 cryoSPARC是一个后端和前端高性能计算软件系统,为单颗粒冷冻电镜提供数据处理和图像分析能力,以及丰富的基于浏览器的用户截面和命令行工具。 Master-worker模式 系统基于主用户模式。 主进程(web应用,核心应用程序和MongoDB数据库)一起在主节点上运行。主节点需要相对轻量级的资源(2+ CPU< 16GB+ RAM)。 工作程序进程可以在具有GPU的任何可用节点上生成,负责所有实际计算和数据处理,并由主节点调度。注意:同一节点可以同时充当主节点和辅

进阶中的程序员吃吃的博客 7795

手把手教你学Simulink--逆变器场景:基于Simulink的单相全桥逆变器PWM控制仿真建模

本文介绍了使用Simulink和Simscape Electrical库进行单相全桥逆变器PWM控制仿真建模的详细步骤。主要内容包括:从创建Simulink项目、添加电力电子组件、构建逆变器模型,到设置参数、运行仿真和结果分析。重点讲解了逆变器核心模块的配置、PWM信号生成、负载建模等关键环节,并提供了优化改进建议。该指南适用于电力电子初学者,通过仿真可以帮助理解单相全桥逆变器的工作原理和PWM控制技术,为实际应用和算法开发提供基础平台。

MHD0815的博客 665

SQL进行嵌套查询

select 雇员表.雇员编号, 雇员表.姓名, 雇员表.职务, 雇员表.薪水 from 雇员表, 部门表 where exists (select * from 雇员表 where 雇员表.部门编号 = 部门表.部门编号)  在SELECT查询语句里可以嵌入SELECT查询语句,称为嵌套查询。 有些书上将内嵌的SELECT语句称为孒查询,子查询形成的结果又成为父查询的条件。 子查询可以...

晓晓梦 863

CANbus收发器ADM3053BRWZ-REEL7应用原理图设计

ADM3053 在 CAN 协议控制器与物理层总线之间创建一个 完全隔离的接口。该器件具有限流和热关断特性,可防止输出短路。额定温 度范围为工业温度范围,提供 20 引脚、宽体 SOIC 封装。该器件采用 5 V 单电源供电, 提供完全隔离的 CAN 解决方案。ADM3053 是一款隔离式控制器区域网络 (CAN) 物理层收 发器,集成隔离 DC/DC 转换器,符合 ISO 11898 标准。该器件采用 ADI 公司的。Coupler® 技术,将双通道隔离器、 CAN 收发器和 ADI 公司的。

zhusl6688的博客 1235

SQL Server--嵌套查询

嵌套查询嵌套查询1.带有IN谓词的子查询。2.带有比较运算符的子查询3.带有ANY(SOME)或 ALL 谓词的子查询。4.带有 EXISTS 谓词的子查询。总结 嵌套查询 1.带有IN谓词的子查询。   在SQL语言中,一个 SELECT-FROM-WHERE 语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE 子句或 HAVING 短语的条件中的查询称为嵌套查询(nested query)。 举一个例子: select Sname from Student where Sno in

Codingzyk的博客 3996

TPAMI 2024 | MO-MIX:基于深度强化学习的多目标多智能体协同决策

深度强化学习(RL)已被广泛应用于解决复杂的决策问题。在许多现实世界的场景中,任务通常有多个相互冲突的目标,并且可能需要多个智能体进行合作,这些是多目标多智能体决策问题。然而,在这个交叉领域的研究工作还相对较少。现有的方法仅限于单独的领域,并且只能处理具有单一目标的多智能体决策,或者具有单一智能体的多目标决策。在本文中,我们提出了MO-MIX来解决多目标多智能体强化学习(MOMARL)问题。我们的方法基于集中训练与分散执行(CTDE)框架。

小白学视觉 1128

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SQL笔记——嵌套查询

SQL笔记——嵌套查询

weixin_51335655的博客 1973

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

sql嵌套查询慢的原因

文章目录问题解决 问题 为了查询一个字段,使用了五层嵌套循环,但是花费了约1分钟 但是5个表的数据每个最多只有10条,怎么会这么慢呢? 解决 比如查询语句 SELECT * FROM studet 分析器会先看语句的第一个词,如果它发现第一个词是SELECT关键字的时候,它会跳到FROM关键字,然后通过FROM关键字找到表名并把表装入内存。 内存中有student表 接着是找WHERE关键字,如果找不到则返回到SELECT找字段解析 SELECT * FROM studet WHERE stu_id=1

lidashent的博客 2274

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

sql嵌套查询很慢——优化方案

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34088583的博客 6205

SQL语句嵌套查询

嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于insert、update、delete语句或其他子查询中。

Lamb的博客 1631

SQL Sever 子查询与嵌套查询

其中,some和any谓词是存在量的,只注重是否有返回值满足搜索要求。all 谓词的使用方法和 any 或者 some 谓词一样,也是把列值与子查询结果进行比较,但是它不要求任意结果值得列值为真,而是要求所有列的查询结果都为真,否则就不返回行。exists谓词只注重子查询结果是否返回行。如果子查询返回一个或多个行,谓词返回为真值,否则为假。exists搜索条件并不真正使用子查询的结果。他仅测试子查询是否产生任何结果。查询学生表中 Sno在SC表不存在的学生。查询学生表中,年龄小于平均值的学生。

有勇气的牛排博客 1788

SQL连接查询和嵌套查询详解

SQL连接查询和嵌套查询详解 连接查询 若一个查询同时涉及两个或两个以上的表,则称之为连接查询。连接查询是数据库中最最要的查询, 包括1、等值与非等值连接查询2、自然连接查询 1、等值连接查询 2、自然连接查询 3、非等值连接查询 4、自身连接查询 5、外连接查询 6、复合条件查询 1、等值与非等值连接查询 比较运算符主要有=、>、<、>=、<=、!=(或<>)等。 下面来看一个例子: 假设有一个学生数据库,其中有三张表,即学生信息表(Student)、课程表(Cours

csdn_life18的博客 6173

sql嵌套查询

1、sql嵌套查询:一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于insert、update、delete语句或其他子查询中。

菜小菜吃菜的博客 4352
上一篇: 用SQL进行多表查询
下一篇: 用SQL进行函数查询
databasechannel
博客等级 码龄21年 8粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值