`

详细解析oracle中left join,right join,inner join用法

 
阅读更多

表A记录如下: 
aID aNum 
1   a11 
2   a22 
3   a33 
4   a44 
5   a55

表B记录如下: 
bID bName 
1   b11 
2   b22 
3   b33 
4   b44 
8   b88

创建这两个表SQL语句如下: 
CREATE TABLE a 
aID int( 1 ) AUTO_INCREMENT PRIMARY KEY , 
aNum char( 20 ) 
) 
CREATE TABLE b( 
bID int( 1 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
bName char( 20 ) 
)

INSERT INTO a 
VALUES ( 1, 'a11' ); 
commit; 
.....

INSERT INTO b 
VALUES ( 1, 'b11' ); 
commit; 
.....


1.left join(左联接)

sql语句如下: 
SELECT * FROM a 
LEFT JOIN b 
ON a.aID =b.bID

结果如下: 
aID aNum bID bName 
1   a11  1    b11 
2   a22  2    b22 
3   a33  3    b33 
4   a44  4    b44 
5   a55  NULL NULL 
(所影响的行数为 5 行)

结果说明: 
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的. 
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). 
B表记录不足的地方均为NULL.

2.right join(右联接)

sql语句如下: 
SELECT * FROM a 
RIGHT JOING b 
ON a.aID = b.bID

结果如下: 
aID aNum bID bName 
1    a11  1   b11 
2    a22  2   b22  
3    a33  3   b33  
4    a44  4   b44  
NULL NULL 8   b88 
(所影响的行数为 5 行)

结果说明: 
仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.

3.inner join(相等联接或内联接)

sql语句如下: 
SELECT * FROM a 
INNER JOIN b 
ON a.aID =b.bID

等同于以下SQL句: 
SELECT * 
FROM a,b 
WHERE a.aID = b.bID

结果如下: 
aID aNum bID bName 
1    a11  1   b11          
2    a22  2   b22         
3    a33  3   b33         
4    a44  4   b44        

结果说明: 
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join它只显示符合条件的记录. 
LEFT JOIN操作用于在任何的 FROM 子句中,

组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即 
使在第二个(右边)表中并没有相符值的记录。

语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2 
说明:table1, table2参数用于指定要将记录组合的表的名称。 
field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的 
名称。 
compopr参数指定关系比较运算符:"=", "<", ">", "<=", ">=" 或 "<>"。 
如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误。

分享到:
评论

相关推荐

    oracle-join用法

    在Oracle SQL中,Join主要分为几个类型,包括INNER JOIN、LEFT JOIN (LEFT OUTER JOIN)、RIGHT JOIN (RIGHT OUTER JOIN)以及FULL JOIN (FULL OUTER JOIN)。这些类型在Java编程中同样可以使用,通过SQL查询语句来实现...

    oracle中left join和right join的区别浅谈

    在Oracle数据库中,JOIN操作是用于合并两个或更多表中的数据行,以便基于它们之间的相关列获取结果集。LEFT JOIN(也称为LEFT OUTER JOIN)和RIGHT JOIN(也称为RIGHT OUTER JOIN)是两种特殊的JOIN类型,它们在处理...

    深入Oracle的left join中on和where的区别详解

    在Oracle数据库中,LEFT JOIN是一种联接操作,用于合并两个或更多表的记录,返回所有左表(第一个提及的表)的记录,即使在右表中没有匹配的记录。LEFT JOIN的关键在于它会保留左表的所有行,并尝试与右表匹配。当...

    left-right-join.zip_join_oracle

    本主题主要聚焦于Oracle中的两种特殊连接方式:左外连接(LEFT JOIN)和右外连接(RIGHT JOIN)。通过深入理解这两种连接类型,我们可以更好地进行数据融合,获取更全面的信息。 首先,让我们从基本概念出发。在SQL...

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

    - **RIGHT JOIN (或 RIGHT OUTER JOIN)**:除了返回两个表中匹配的行外,还会返回右表中不匹配的所有行,并将左表的列设置为NULL。 - **FULL OUTER JOIN**:返回两个表中所有匹配和不匹配的行。 #### 示例表结构 ...

    关于SQL 中的inner join的使用

    本文详细介绍了 SQL 中 INNER JOIN 的基本概念、语法结构及其应用场景,并通过具体的案例分析了如何有效地使用 INNER JOIN 来查询数据。此外,还探讨了 GROUP BY 和 HAVING 子句的应用,以及 SUM 和 COUNT 聚合函数...

    sql join( inner join, outer join) 分析

    至于标签“源码”和“工具”,这可能暗示在某些数据库管理系统(如MySQL、Oracle、SQL Server等)中实现JOIN操作的特定语法,或者可能涉及到使用某种查询工具(如SQL Developer、SSMS等)来编写和执行JOIN查询。...

    oracle 连接 join at

    在Oracle数据库中,连接(JOIN)是用于合并两个或多个表的数据的关键操作。当我们需要从相关的表中获取信息时,JOIN语句就显得尤为重要。在本文中,我们将深入探讨Oracle JOIN的操作及其在实际应用中的重要性。 ...

    oracle 资料

    本篇文章将详细探讨Oracle中的JOIN操作,包括各种类型的JOIN以及它们的使用方式。 1. JOIN概述 在Oracle中,JOIN操作允许我们将两个或更多表的行合并到一起,基于这些表之间的关联字段。这些关联通常定义在ON子句中...

    oracle SQL疑难解析 书中SQL

    3. **连接查询**:JOIN操作用于合并两个或更多表的数据,如INNER JOIN返回两个表中匹配的记录,LEFT JOIN返回左表的所有记录和右表匹配的记录,RIGHT JOIN反之,FULL JOIN返回所有匹配和不匹配的记录。 4. **子查询...

    理解oracle中的外连接

    在Oracle数据库系统中,外连接(Outer Join)是一种高级的SQL联接操作,它扩展了标准的内连接(Inner Join)概念,允许我们查询不匹配的数据。外连接分为三种类型:左外连接(Left Outer Join)、右外连接(Right ...

    Oracle SQL连接查询总结.docx

    根据连接的方式不同,可以分为内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)以及全连接(FULL JOIN)等几种类型。 #### 二、连接查询类型详解 ##### 1. INNER JOIN (内连接) 内连接是最常用...

    PL/SQL Join实例分析

    在PL/SQL(Oracle数据库的编程语言)中,JOIN语法尤其重要,因为它是处理复杂查询的基础。以下是PL/SQL中不同类型的JOIN及其特点的详细分析: 1. **左连接(LEFT JOIN)**: 左连接返回左表(Aa)的所有行,即使在...

    oracle 左连接 右连接学习

    下面我们将详细介绍 Oracle 中的左连接、右连接、内连接、全连接和交叉连接。 左连接(Left Outer Join) 左连接是一种外连接,它返回左表中的所有记录,并将右表中的记录匹配到左表中。如果右表中没有匹配的记录...

    My-Oracle-PLSQL-A.doc

    本文档详细介绍了如何在 Oracle 数据库中使用 Blob 存储图片文件的方法,并且深入探讨了 Oracle 中的 Join 操作类型及其应用场景。这些知识点对于理解 Oracle 数据库的基本操作和数据管理至关重要。

    oracle 多表查询

    在 Oracle 中,多表查询可以使用不同的连接类型,包括内连接(inner join)、左连接(left join)、右连接(right join)、全连接(full join)和交叉连接(cross join)。 1. 内连接(inner join) 内连接是指...

    韩顺平oracle课堂笔记

    Oracle支持的多表查询方式包括INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN等。笔记将详细阐述各种JOIN类型的应用,以及在WHERE子句中使用JOIN条件的方式。此外,还会讨论自连接、子查询和连接查询的差异,以及...

    oracle-OCP-051中文解析及答案共217题

    ### Oracle-OCP-051知识点解析 #### 视图创建与DML操作限制 **题目背景:** ... **题目描述:** ...4. **限定符使用** 在非自然连接(例如INNER JOIN、LEFT JOIN等)中,推荐使用限定符来避免模糊性问题。

Global site tag (gtag.js) - Google Analytics