`
z_kanhai
  • 浏览: 51546 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sql中join的各种用法

阅读更多
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
举例如下:
--------------------------------------------
表A记录如下:
aID     aNum
1     a20050111
2     a20050112
3     a20050113
4     a20050114
5     a20050115

表B记录如下:
bID     bName
1     2006032401
2     2006032402
3     2006032403
4     2006032404
8     2006032408

--------------------------------------------
1.left join
sql语句如下:
select * from A
left join B
on A.aID = B.bID

结果如下:
aID     aNum     bID     bName
1     a20050111    1     2006032401
2     a20050112    2     2006032402
3     a20050113    3     2006032403
4     a20050114    4     2006032404
5     a20050115    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 join B
on A.aID = B.bID

结果如下:
aID     aNum     bID     bName
1     a20050111    1     2006032401
2     a20050112    2     2006032402
3     a20050113    3     2006032403
4     a20050114    4     2006032404
NULL     NULL     8     2006032408

(所影响的行数为 5 行)
结果说明:
仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.
--------------------------------------------
3.inner join
sql语句如下:
select * from A
innerjoin B
on A.aID = B.bID

结果如下:
aID     aNum     bID     bName
1     a20050111    1     2006032401
2     a20050112    2     2006032402
3     a20050113    3     2006032403
4     a20050114    4     2006032404

结果说明:
很明显,这里只显示出了 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 数据类型数据的字段,将会发生错误.

外补:select * from A
left join
(
select bID,bName from B where bID <= 3
)T
on T.bID = A.aID

分享到:
评论

相关推荐

    sql语句中join的用法

    ### SQL语句中JOIN的用法详解 在SQL查询语言中,`JOIN`是一个非常重要的概念,它允许我们从两个或多个表中提取数据。通过使用不同类型的JOIN操作,我们可以根据表之间的关系来灵活地组织数据。下面我们将详细介绍几...

    SQL join 完全用法

    SQL join 完全用法 SQL join 完全用法 学习sql join

    SQL中的left outer join,inner join,right outer join用法详解

    SQL 中的左外连接、内连接、右外连接用法详解 SQL 中的连接操作是数据库管理系统中最基本的操作之一,它能够将多个表中的数据结合起来,生成一个新的结果集。本文将对 SQL 中的左外连接、内连接、右外连接进行详细...

    有关sql中的join用法

    在SQL查询中,JOIN操作是连接两个或多个表的关键部分,用于从这些表中提取相关数据。JOIN的主要目的是合并来自不同表的行,基于这些表之间的共同列或字段。在这个主题中,我们将深入探讨JOIN的不同类型,以及某些...

    SQL语句left join/right join/inner join 的用法比较

    在SQL查询中,JOIN操作是连接两个或多个表的关键部分,用于从这些表中提取相关数据。本篇文章将深入探讨LEFT JOIN、RIGHT JOIN以及INNER JOIN的用法,并通过实例进行对比,帮助理解它们之间的差异。 1. LEFT JOIN...

    SQL中JOIN的使用详解

    ### SQL中JOIN的使用详解 在SQL查询语言中,`JOIN`操作是非常...理解这些`JOIN`类型的工作原理及其用法,可以帮助我们更有效地从数据库中提取所需的信息。在实际应用中,根据具体需求选择合适的`JOIN`类型至关重要。

    SQL 之JOIN 用法完全版.rar

    在这个“SQL之JOIN用法完全版”中,我们将深入探讨JOIN的不同类型及其应用。 1. **INNER JOIN**: INNER JOIN返回两个表中匹配的行。这意味着只有当第一个表中的某行与第二个表中的某行在指定的列上具有相同的值时...

    sql语句中join的用法和效率说明.doc

    ### SQL语句中JOIN的用法与效率说明 #### 一、引言 在数据库管理与应用程序开发过程中,数据查询的效率对系统性能至关重要。在众多的查询操作中,JOIN作为连接不同表的一种手段,其使用频率非常高。本文将详细介绍...

    sql join on 用法

    SQL Join On 用法 SQL Join On 是一种常用的数据库连接方式,用于连接两个或多个表,通过指定的连接条件来筛选和组合数据。join on 语句的基本结构为: `SELECT * FROM table1 [LEFT/RIGHT/INNER] JOIN table2 ON ...

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

    ### SQL中的Join类型详解 在数据库操作中,`JOIN`是一种非常重要的操作,它用于将两个或多个表中的行合并到一起,以便于查询和分析跨表的数据。根据不同的连接方式,`JOIN`可以分为几种类型,包括`INNER JOIN`、`...

    sql语句join中on和where的区别

    除了LEFT JOIN,SQL还提供了其他几种JOIN类型,每种类型都有其特定的用途: 1. **RIGHT JOIN ON**: 返回右表中所有的记录以及左表中连接字段相等的记录。如果左表中不匹配ON条件的数据则为null。 - **示例**: 查询...

    sql join( inner join, outer join) 分析

    尽管每个系统可能略有不同,但JOIN的基本概念和用法在大多数SQL方言中是通用的。 综上所述,理解并熟练运用INNER JOIN和OUTER JOIN是提升SQL查询能力的关键步骤。在实际工作中,根据需求选择合适的JOIN类型,能帮助...

    sql中as的一些用法

    ### SQL中的AS关键字详解 在SQL语言中,`AS`关键字是一个非常实用的功能,它主要用于为查询结果中的列或者表创建别名。这种别名的使用不仅能够提高SQL语句的可读性,还能帮助开发者更好地理解数据结构,特别是在...

    MySQL JOIN 语法说明与 INNER JOIN 语法用法实例.docx

    本文档详细介绍了 MySQL 中的 JOIN 语法,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 等,并提供了实际的实例来说明 JOIN 的用法。 首先,MySQL 的 JOIN 语法用于根据两个或多个表中的字段之间的关系,从...

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

    今天我们将深入探讨如何在SQL Server中使用Group By与Inner Join结合来实现更复杂的分组统计。 首先,理解Group By的基本用法至关重要。Group By语句将结果集按照一个或多个列进行分组,这样我们可以对每个组应用...

    oracle-join用法

    本文将深入探讨Oracle的JOIN用法,包括内连接(INNER JOIN)、外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)以及自然连接(NATURAL JOIN),并结合实例进行说明。 1. **内连接(INNER JOIN)**: 内连接返回两个表中满足特定...

    sql-jion 用法

    SQL JOIN是数据库操作中的关键部分,用于合并来自两个或多...理解这些JOIN的原理和用法对于写出高效的SQL查询至关重要,尤其是在处理大数据集时。在编写SQL查询时,应该根据业务需求和数据结构来决定最合适的JOIN类型。

Global site tag (gtag.js) - Google Analytics