博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hello oracle IV
阅读量:5751 次
发布时间:2019-06-18

本文共 906 字,大约阅读时间需要 3 分钟。

子查询

SELECT * FROM T 中就可以用子查询来代替表T,比如SELECT * FROM(SELECT * FROM T2 where FAge<30)

SELECT语句可以嵌套在其他语句中,比如SELECT,INSERT,UPDATE以及DELETE等,这些被嵌套的SELECT语句就称为子查询,可以这么说当一个查询依赖于另外一个查询结果时就可以使用子查询。

单值子查询(标量子查询) 

单值子查询的语法和普通的SELECT语句没有什么不同,唯一的限制就是子查询的返回值必须只有一行记录,而且只能有一个列。

列值子查询

与标量子查询不同,列值子查询可以返回一个多行多列的结果集。这样的子查询又被称为表子查询,表子查询可以看作一个临时的表,表子查询可以用在SELECT语句的FROM子句中、INSERT语句、连接、IN 子句等很多场合。

SELECT FId,FName, ( SELECT MAX(FYearPublished)  FROM T_Book  WHERE T_Book. FCategoryId= T_Category.FId ) FROM T_Category

这个SELECT语句首先检索FId、FName两个字段,而第三个字段不是一个列二是一个子查询。这个子查询位于主查询的内部,它返回一类图书的最新出版年份。因为聚合函数仅返回一行记录,所以这满足标量子查询的条件。通过WHERE语句,这个子查询也被连接到外部的SELECT查询语句中,因为这个连接,MAX(FYearPublished)将返回每类图书的最新出版年份。

需要注意的是这里的子查询与前边讲的有所不同,前面用到的子查询没有依赖于外部查询中的字段,也就是可以直接单独执行。

SELECT FReaderId FROM T_ReaderFavorite WHERE FCategoryId= ( SELECT FId FROM T_Category  WHERE FName='Story' )

 

转载于:https://www.cnblogs.com/grep/archive/2012/05/31/2528081.html

你可能感兴趣的文章
[LeetCode] Merge Intervals
查看>>
Struts2 学习小结
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
桌面支持--打不开网页上的pdf附件解决办法(ie-tools-compatibility)
查看>>
POI getDataFormat() 格式对照
查看>>
系列3:WAS Liberty Profile hello mysql jdbc
查看>>
基础知识:python模块的导入
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>
oracle查看经常使用的系统信息
查看>>
Django_4_视图
查看>>
Linux的netstat命令使用
查看>>
大快网站:如何选择正确的hadoop版本
查看>>
经过这5大阶段,你离Java程序员就不远了!
查看>>
IntelliJ IDEA 连接数据库详细过程
查看>>
PHP-X开发扩展
查看>>
android学习笔记——onSaveInstanceState的使用
查看>>
工作中如何做好技术积累
查看>>
Spring Transactional
查看>>