子查询和关联子查询的区别,其实都知道怎么回事就是没答上来,整理学习下
1.关联子查询
在关联子查询中,对于外部查询返回的每一行数据,内部查询都要执行一次。另外,在关联子查询中是信息流是双向的。外部查询的每行数据传递一个值给子查询,然后子查询为每一行数据执行一次并返回它的记录。然后,外部查询根据返回的记录做出决策。
例子
select c.cust_id,c.cust_type_cd,c.city from customer c where 2 = (select count(*) from account a where a.cust_id = c.cust_id);
就是一个关联子查询
2.SQL 子查询
当一个查询是另一个查询的条件时,称之为子查询。 子查询可以使用几个简单命令构造功能强大的复合命令。 子查询最常用于SELECT-SQL命令的WHERE子句中。 子查询是一个 SELECT 语句,它嵌套在一个 SELECT、SELECT...INTO 语句、INSERT...INTO 语句、DELETE 语句、或 UPDATE 语句或嵌套在另一子查询中。
可用三种语法来创建子查询: comparison [ANY | ALL | SOME] (sqlstatement) expression [NOT] IN (sqlstatement) [NOT] EXISTS (sqlstatement) 子查询可分为以下几个部分:
组成部分
comparison 一个表达式及一个比较运算符,将表达式与子查询的结果作比较。 expression 用以搜寻子查询结果集的表达式。 sqlstatement SELECT 语句,遵从与其他 SELECT 语句相同的格式及规则。它必须括在括号之中。
说明
可以拿子查询代替表达式 用于SELECT 语句字段表或 WHERE 或 HAVING 子句。在子查询之中,在 WHERE 或 HAVING 子句的表达式中,用于计算的特定值是由 SELECT 语句提供的。
使用
ANY 或 SOME 谓词,它们是同义字,来检索主查询中的记录,这些记录要满足在子查询中检索的任何记录的比较条件。下列示例将返回全部单价比任何以 25% 或更高的折扣卖出的产品高的产品: SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25); 使用 ALL 谓词只检索主查询中的这些记录,它们满足在子查询中检索的所有记录的比较条件。如果将前一个示例中的 ANY 改为 ALL,查询只会返回单价比全部以 25% 或更高的折扣卖出的产品高的产品。这是更多的限制。 用 IN 谓词,只能在主查询检索那些记录,在子查询中的某些记录也包含和它们相同的值。下列示例返回有 25% 或更高的折扣的所有产品: SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25); 相反,可用 NOT IN 在主查询中检索那样的记录,在子查询中没有包含与它们的值相同的记录。 在 true/false 比较中使用 EXISTS 谓词(与可选的 NOT 保留字一道)来决定子查询是否会返回任何记录。
示例
还可用子查询中的表名别名来查询子查询外的 FROM 子句的列表。下列示例返回工资等于或高于所有职位相同员工的平均工资的员工姓名。这张员工表的别名为 "T1": SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title; 上例中AS保留词可选。 某些子查询在交叉表查询中是允许的,特别是谓词(那些在 WHERE 子句中的)。将子查询作为输出(那些列在 SELECT 中的)在交叉表查询中是不允许的。
分享到:
相关推荐
恒拓开源信息科技股份有限公司2017年的年度报告揭示了公司在该年度的多个重要发展和战略举措。作为一家专注于IT行业的公司,恒拓开源在2017年展现了其在航空科技、云计算、大数据和移动通信领域的积极布局。 首先,...
恒拓开源信息科技股份有限公司2019年的年度报告揭示了公司在该年度的多个重要发展和成就,尤其是在民航、数字化服务和技术创新方面的卓越表现。恒拓开源聚焦智慧民航领域,成功举办了2019年用户大会并发布了新一代...
【恒拓科技】HT-Hawk飞控资料包7-24号.rar是一个综合性的资源集合,专注于无人机飞控系统的开发和理解。这个压缩包包含了多个关键组成部分,对于想要深入研究飞控技术,尤其是恒拓科技的HT-Hawk飞控系统的用户来说,...
【济南大学第四届“恒拓杯”电子电路设计大赛】是一个以技术创新和实践能力为核心的比赛,旨在培养大学生的创新能力、协作精神以及工程实践能力。比赛由济南大学主办,并得到了恒拓公司的支持,它鼓励学生们超越自我...
开源迷你四轴飞控程序是一种专为DIY爱好者设计的控制系统,它允许用户自建小型四轴飞行器并实现稳定飞行。此程序的核心是飞控系统,它包含了关键的飞行控制算法,特别是高效的PID(比例-积分-微分)算法,这种算法在...
其他企业如微创光电、国源科技、数字人、殷图网联和恒拓开源也有各自的专业领域和发展重点,例如微创光电在光电领域,国源科技在环保信息化,数字人在医疗影像,殷图网联在自动化监测,恒拓开源在开源软件服务,这些...
恒拓公司针对这一需求,提出智能公交解决方案,旨在通过信息化手段提升公交运营的科学性和乘客的出行体验。 1.1 智慧公交行业需求分析: - 运营调度和车辆管理:公交公司需要实时了解车辆位置、状态,以便进行有效...
《Eucalyptus企业版2.0管理员手册》是中国恒拓开源信息科技有限公司于2011年9月26日发布的针对Eucalyptus云平台的管理指南,旨在帮助管理员理解和操作Eucalyptus企业版2.0。Eucalyptus(发音“优卡利普托斯”)是一...
北大恒拓Android软件工程师实训方案.doc
恒拓开源公司开源出来的客户端源代码,里面的内容都是通过解析他们官网的HTML网页获取的。代码简明清晰,可以学到一些平常很少注意到的东西,比如布局引用、intent传递类的对象、html解析、获取HashMap的键。
《云平台软件Eucalyptus企业版2.0管理员手册》是一本针对Eucalyptus云平台的详尽指南,由恒拓开源信息科技有限公司于2011年9月26日发布。该手册旨在为管理员提供Eucalyptus企业版2.0的全面知识和操作指导,帮助他们...
该系统旨在解决公交运营中的一系列问题,如效率低下、信息传递不及时等问题,以提升公交服务的安全性、舒适度和便捷性。 1. **项目综述** - 项目说明:此项目旨在通过建立公交智能调度管理系统,改善XXX城市的公交...
2021年09月16日
在电商B2B赛道,2019年以来有国联股份(领先的B2B平台和产业互联网公司)、恒拓开源(国内首家开源技术B2B公司)、壹网壹创(电子商务解决方案提供商)、联易融科技-W(供应链金融科技解决方案提供商,港股)和京东...
- 公司拥有一支由资深IT开源技术专家组成的团队,致力于推动开源软件的发展。 - 通过不断的技术创新和产品迭代,恒拓软联旨在为全球用户提供高质量的开源解决方案和服务。 综上所述,中通软联推出的C++插件开发平台...
结合描述中的信息,我们可以推测这是一个由恒拓科技团队开发的、基于Visual C++的单片机控制系统,可能用于无人机或飞行控制器,因为提到了“开源飞控”。 在单片机开发中,Visual C++是一种常见的编程工具,它允许...
在2019年上市的新股中,国联股份、恒拓开源、壹网壹创、联易融科技-W、京东健康等公司都与电子商务B2B赛道有关。根据数据显示,这些公司中,国联股份在营收复合增速和归母净利复合增速方面表现突出,成长性较为突出...