`

用于理解join的例子

 
阅读更多

--第1组--       这个相当于全关联,只显示两个都存在的

SELECT * FROM a,b WHERE a.ID=b.ID;

 

SELECT * FROM a JOIN b ON a.ID=b.ID;

 

 

--第2组--

SELECT * FROM a LEFT JOIN b ON a.ID=b.ID AND a.NAME='a';

 

SELECT * FROM a,b WHERE a.ID=b.ID(+) AND a.NAME='a';

 

SELECT * FROM a,b WHERE a.ID=decode(a.NAME,'a',b.ID(+));

 

SELECT * FROM 

(SELECT * FROM a WHERE a.NAME='a') a LEFT JOIN b ON  a.ID=b.ID;

 

 

--第3组--

SELECT * FROM a RIGHT JOIN b ON a.ID=b.ID AND a.NAME='a';

 

SELECT * FROM a,b WHERE a.ID(+)=b.ID AND a.NAME(+)='a';

 

SELECT * FROM a,b WHERE a.ID(+)=b.ID AND a.NAME='a';

 

SELECT * FROM a RIGHT JOIN b ON a.ID=b.ID WHERE a.NAME='a';

 

SELECT * FROM a,b WHERE b.id=decode(a.NAME(+),'a',a.ID(+));

 

SELECT * FROM 

(SELECT * FROM a WHERE a.NAME='a') a RIGHT JOIN b ON  a.ID=b.ID;

 

 

--第4组--  2,3 (+)出现在and条件之后,是在关联前取它为空,然后关联,没有(+)是关联完了之后取b.id为空的情况

SELECT * FROM  a LEFT JOIN b ON a.ID=b.ID AND b.ID IS NULL;

 

SELECT * FROM  a,b WHERE a.ID=b.ID(+) AND b.ID(+) IS NULL;

 

SELECT * FROM  a,b WHERE a.ID=b.ID(+) AND b.ID IS NULL;

 

 

--第5组--

DROP TABLE c;

CREATE TABLE c 

AS

SELECT 1 ID,'a' NAME FROM dual UNION ALL

SELECT 5 ID,'x' NAME FROM dual;

 

SELECT * FROM a,b,c WHERE a.ID(+)=b.ID AND a.ID(+)=c.ID;

 

SELECT * FROM a RIGHT JOIN b ON a.ID=b.ID

RIGHT JOIN c ON a.ID=c.ID;

 

SELECT * FROM a,b WHERE a.ID(+)=b.ID OR a.NAME=b.NAME;

 

SELECT * FROM a,b WHERE a.ID(+)=b.ID OR a.NAME(+)=b.NAME;

 

SELECT * FROM a RIGHT JOIN b ON a.ID=b.ID OR a.NAME=b.NAME;

 

SELECT * FROM a,b WHERE a.ID=b.ID(+) AND a.NAME IN (SELECT 'a' FROM dual);

 

SELECT * FROM a,b WHERE a.ID=b.ID(+) AND b.NAME(+) IN (SELECT 'a' FROM dual);

 

SELECT * FROM a LEFT JOIN b ON a.ID=b.ID AND b.NAME IN (SELECT 'a' FROM dual);

分享到:
评论

相关推荐

    课程设计基于Tensorflow框架BERT的中文命名实体识别python源码+详细项目说明.zip

    虽然之前网上也有很多使用BERT的例子和教程,但是我觉得都不是很完整,有些缺乏注释对新手不太友好,有些则是问题不同修改的代码也不同,自己也在路上遇到了不少的坑。所以记录一下。 【备注】 该项目是个人毕设/...

    经典全面的SQL语句大全

     例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..  4、说明:子查询(表名1:a 表名2:b) select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3) ...

    Hadoop实战(第2版)

    本书提供了结构良好且易于理解的例子,可用于应对你所遇到的问题。 《Hadoop硬实战》包含: ·Hadoop和MapReduce的基本概念 ·85个实战和测试技术 ·真实的场景,实用的解决方案 ·如何整合MapReduce和R前言 ...

    hibernate 框架详解

    使用连接表的单向关联(Unidirectional associations with join tables) 8.3.1. 一对多(one to many) 8.3.2. 多对一(many to one) 8.3.3. 一对一(one to one) 8.3.4. 多对多(many to many) 8.4. 双向...

    最全Hibernate 参考文档

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    Hibernate3+中文参考文档

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    Hibernate中文详细学习文档

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    Hibernate+中文文档

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    Tcl_TK编程权威指南pdf

    此外,在Xerox PARC工作,那里有许多语言和系统上的专家,我不得不强迫自己去理解Tcl/Tk的长处和弱点。我的许多同事都在他们的项目中采用了Tcl和Tk,但是他们也很快指出了它的缺点。因此,我就总结了一套编程技巧以...

    hibernate3.04中文文档.chm

    20.5. 理解集合性能(Understanding Collection performance) 20.5.1. 分类(Taxonomy) 20.5.2. Lists, maps 和sets用于更新效率最高 20.5.3. Bag和list是反向集合类中效率最高的 20.5.4. 一次性删除(One...

    Hibernate教程

    20.5. 理解集合性能(Understanding Collection performance) 20.5.1. 分类(Taxonomy) 20.5.2. Lists, maps 和sets用于更新效率最高 20.5.3. Bag和list是反向集合类中效率最高的 20.5.4. 一次性删除(One ...

    Hibernate参考文档

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    hibernate 体系结构与配置 参考文档(html)

    使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. 双向...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    Hibernate 中文 html 帮助文档

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    HibernateAPI中文版.chm

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    hibernate3.2中文文档(chm格式)

    19.5. 理解集合性能(Understanding Collection performance) 19.5.1. 分类(Taxonomy) 19.5.2. Lists, maps 和sets用于更新效率最高 19.5.3. Bag和list是反向集合类中效率最高的 19.5.4. 一次性删除(One ...

    NHibernate参考文档 2.0.0 chm

    16.5. 理解集合性能(Understanding Collection performance) 16.5.1. 分类(Taxonomy) 16.5.2. Lists, maps 和sets用于更新效率最高 16.5.3. Bag和list是反向集合类中效率最高的 16.5.4. 一次性删除(One shot ...

    NHibernate中文帮组文档(2008.11月更新)

    16.5. 理解集合性能(Understanding Collection performance) 16.5.1. 分类(Taxonomy) 16.5.2. Lists, maps 和sets用于更新效率最高 16.5.3. Bag和list是反向集合类中效率最高的 16.5.4. 一次性删除(One shot ...

    mysql官方中文参考手册

    3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天...

Global site tag (gtag.js) - Google Analytics