`

用于理解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);

分享到:
评论

相关推荐

    Fork/Join例子

    标题“Fork/Join例子”暗示我们将探讨一个具体的示例,展示如何使用这个框架来解决问题。通常,这样的例子会涵盖创建自定义的`RecursiveTask`或`RecursiveAction`类,以及如何使用`ForkJoinPool`来执行它们。 描述...

    D3 data join概念讲解例子

    在这个名为"D3 data join概念讲解例子"的压缩包中,我们主要关注的是D3.js的核心概念——data join。这个例子将帮助我们深入理解enter、update和exit这三种关键的状态,它们是D3处理数据与DOM元素之间关系的基础。 ...

    inner join、 left join 、right join、 outer join之间的区别

    在数据库操作中,连接(Join)是一种非常重要的操作,用于组合两个或多个表中的数据。根据连接的方式不同,可以分为几种类型:`INNER JOIN`、`LEFT JOIN`、`RIGHT JOIN`以及`FULL OUTER JOIN`。下面将详细解释这些...

    sql中join总结

    在SQL查询中,JOIN操作是用于将两个或更多表格的数据结合在一起的关键技术。...理解并熟练运用这些JOIN类型是进行复杂数据查询和分析的基础,特别是在大型数据库系统中,JOIN操作是数据整合的关键步骤。

    SQL连接JOIN例

    ### SQL连接JOIN详解 #### 一、概述 在SQL中,`JOIN`是一种非常重要的操作,用于合并两个或多个表中的数据。通过不同的`JOIN`类型,我们可以灵活地获取所...希望本文能够帮助读者更好地理解和应用SQL中的`JOIN`操作。

    sql语句join中on和where的区别

    在SQL中,JOIN操作用于合并两个或多个表中的行。正确理解`ON`和`WHERE`子句的区别对于高效地编写查询至关重要。本文将详细解释这两者的不同,并通过具体的例子来加深理解。 #### 创建表结构 为了更好地说明`ON`与`...

    (Left join , Right Join, Inner Join)用法详解

    本文将详细介绍三种常见的连接类型:Left Join、Right Join 和 Inner Join,并通过具体的例子来帮助大家理解这些连接的具体应用。 #### 二、Left Join Left Join(也称为 Left Outer Join)是从左表(即第一个被...

    ForkJoin并发框架入门示例

    在提供的资源中,`ForkJoin.jpg`可能是一个关于ForkJoin框架的示意图,帮助理解其工作原理;`ForkJoin入门.ppt`是PPT文件,里面详细介绍了并发与并行的概念以及ForkJoin框架的使用方法,包括如何创建和执行ForkJoin...

    fork/join 实例

    Fork/Join框架是Java并发处理的一个重要工具,它基于工作窃取算法,设计用于高效地执行并行计算任务。这个框架是Java 7引入的,位于`java.util.concurrent.fork/join`包中,目的是简化多核处理器环境下大规模数据...

    SQL中inner join、outer join和cross join的区别

    **示例**:继续使用`TableA`和`TableB`的例子,如果使用`LEFT OUTER JOIN`,结果集将包含`TableA`的所有行,并且`TableB`中匹配的行也会被包含进来;如果`TableB`中没有匹配项,则对应位置的字段将显示为`NULL`。 #...

    matlab开发-jointable

    在这个例子中,`'key1'`和`'key2'`是用于连接的列。 5. **处理重复键** 当连接键有重复值时,MATLAB会根据连接类型的不同处理这些情况。例如,在内连接中,重复键不会产生额外的行,而在全连接中,每个重复键的...

    inner join and outer join.pdf

    ### Inner Join 和 Outer Join 的详细解析 #### 一、引言 ...通过以上详细的介绍,我们可以更好地理解 Inner Join 和 Outer Join 的概念及其在数据库查询中的应用,这对于日常的数据管理和分析具有重要意义。

    sqlcsdn例子 sqlcsdn例子

    2. **联接查询**:如何使用`JOIN`来合并来自多个表的数据,如内连接(`INNER JOIN`)、外连接(`LEFT JOIN`, `RIGHT JOIN`, `FULL JOIN`)。 3. **子查询**:嵌套的查询,通常用于比较、过滤或计算。 4. **存储...

    SQL _join on 和where的执行顺序1

    在SQL查询中,JOIN操作用于合并两个或多个表的数据,以便根据它们之间的关系获取更全面的信息。JOIN操作主要有四种类型:LEFT JOIN、RIGHT JOIN、INNER JOIN和FULL JOIN,每种都有其特定的用途。 1. LEFT JOIN(左...

    MySQL JOIN之完全用法

    在优化数据库性能,特别是涉及多表连接查询时,理解JOIN的完全用法至关重要。 首先,JOIN操作主要分为三类:内联接(INNER JOIN)、外联接(OUTER JOIN)以及全外联接(FULL OUTER JOIN)。 1. **内联接(INNER JOIN)**:...

    SqlServer中Group By高级使用--Inner Join分组统计

    Inner Join用于从两个或更多表中返回匹配行,即两个表中存在对应关系的行。假设我们有一个产品表和一个订单表,我们可以使用Inner Join来获取特定客户的所有订单: ```sql SELECT Orders.CustomerID, Customers....

    left join 过滤条件写在on后面和写在where 后面的区别

    在SQL查询语句中,连接(JOIN)是一种非常重要的操作,用于从两个或多个表中获取数据。其中,`LEFT JOIN`是一种常用的连接类型,它返回左表的所有记录以及右表中匹配的记录。如果不匹配,则结果中的右表部分为NULL值...

    scott例子,郝斌老师数据库sql

    这些例子旨在帮助学生深入理解和掌握SQL语言的基础及高级特性。 SQL是用于管理和处理关系型数据库的标准编程语言,它允许我们执行各种任务,如查询、更新、插入和删除数据,以及创建和修改数据库结构。"Scott例子...

    linq 学习例子大全 500多个例子

    5. **连接**(Joining):`Join()`和`GroupJoin()`用于合并不同数据源。 6. **分页**(Paging):`Take()`和`Skip()`用于实现查询结果的分页。 7. **聚合**(Aggregation):`Count()`、`Sum()`、`Average()`等方法...

    基于JDK的ForkJoin构建一个简单易用的并发组件1

    这种方式直观且易于理解,但是没有充分利用ForkJoin框架的特性。 接着,我们转向ForkJoin框架。ForkJoin框架的核心是`ForkJoinPool`和`RecursiveTask`或`RecursiveAction`。前者是线程池,后者用于表示可以被拆分的...

Global site tag (gtag.js) - Google Analytics