Oracle 第13章 当一个查询依赖另一个查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 第13章 当一个查询依赖另一个查询相关的知识,希望对你有一定的参考价值。

 高级子查询   子查询(subquery) 

知识点一:  多表连接之间的关系

例如 希望知道哪种种类的书籍已经借出去了。

select distinct c.parent_catagory, c.sub_category

from category c, bookshelf b, bookshelf_checkout bc

where c.category_name = b.category_name and b.title = bc.title

distinct 关键字 去重

此例中的3表关联的 之间的关系:要连接3表必须把其中两个表与第三个表连接起来。

 1.CATEGORY 表连接到 BOOKSHELF表, 它们连接的结果再与 BOOKSHELF_CHECKOUT表连接。  DISTINCT字句去重 

 注意:并不是每个表都与其它每个表相连接。表之间的连接通常比被连接的表的数量少1.

知识点二: 相关子查询

a.where 子查询      where字句 可以包含SELECT语句的子查询, where 子查询的子句where 还可以嵌套  

select distinct c.parent_categorty, c.sub_category

from categort c 

where category_name in 

  (select category_name from bookshelf

   where title in

     (select title from bookshelf_checkout) 

  );

这个查询与知识点一中的查询结果一样

a: 子查询可以引用在其主查询中使用的表的列(即下例中 bookshelf 表中没有title列)

  select title from bookshelf_author

  where title in

    (select title from bookshelf

    where author_name = ‘setphena hay gould’)

 

以上是关于Oracle 第13章 当一个查询依赖另一个查询的主要内容,如果未能解决你的问题,请参考以下文章

PosegreSQL基础回顾(第 13 章 并发控制)

从另一个 Oracle 用户查询列名 [重复]

从另一个表中选择一个表的否定以及oracle的主表sql查询中的数据

Oracle子查询

要求:oracle数据库,按照时间间隔2分钟查询数据,结果如第一行数据是13:55的数据,第二条就是13:57的

ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法