`

left join ,right join 以及inner join 详解

    博客分类:
  • sql
SQL 
阅读更多
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语句如下: 
Sql代码 
select * from A   
left join B    
on A.aID = B.bID  

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语句如下: 
Sql代码 
select * from A   
right join B    
on A.aID = B.bID  

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语句如下: 
Sql代码 
select * from A   
innerjoin B    
on A.aID = B.bID  

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并不以谁为基础,它只显示符合条件的记录. 
分享到:
评论

相关推荐

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

    本篇文章将深入探讨LEFT JOIN、RIGHT JOIN以及INNER JOIN的用法,并通过实例进行对比,帮助理解它们之间的差异。 1. LEFT JOIN(左连接) LEFT JOIN返回所有左表(在本例中为A表)的记录,即使在右表(B表)中没有...

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

    3. 右外连接(Right Outer Join):包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行。 4. 全外连接(Full Outer Join):包含左、右两个表的全部行,不管另外一边的表中是否...

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

    ### (Left join , Right Join, Inner Join)用法详解 #### 一、基本概念与应用场景 在数据库查询语言SQL中,连接(Join)是一种非常重要的操作,它允许我们结合两个或多个表的数据来检索信息。根据不同的连接方式,...

    Mysql之innerjoin,leftjoin,rightjoin详解.pdf

    Mysql 之 inner join、left join、right join 详解 Mysql 中的连接查询是指从多个表中检索数据,并将它们组合成一个结果集。inner join、left join 和 right join 是 Mysql 中三种最常用的连接查询方式。 inner ...

    关于SQL 中的inner join的使用

    ### SQL中的INNER JOIN详解 #### 一、INNER JOIN的基本概念 **INNER JOIN** 是SQL中最常用的连接类型之一,主要用于从两个或多个表中提取数据,其中仅返回那些满足连接条件的记录。简单来说,INNER JOIN返回的是两...

    SQL联合查询inner join、outer join和cross join的区别详解

    这三者的区别很多人都应该不是很清楚,包括我自己,下面我们一起来看看,如果你使用join连表,缺陷的情况下是inner join,另外,开发中使用的left join和right join属于outer join,而outer join还包括full join....

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

    值得注意的是,INNER JOIN没有LEFT JOIN这样的特性。对于INNER JOIN,无论条件放在ON还是WHERE中,结果都是相同的,因为它只返回那些在两个表中都有匹配记录的行。 总的来说,ON子句在LEFT JOIN中控制关联条件,...

    sql left join 命令详解

    同样,RIGHT JOIN是LEFT JOIN的反向操作,它保留右表的所有行,如果左表中没有匹配项,左表的列将填充NULL。对于给出的例子,`SELECT * FROM a RIGHT JOIN b ON a.aid = b.bid`将产生: ``` 1 a1 b1 2 a2 b2 4 NULL...

    SQL中JOIN的使用详解

    本文将详细介绍五种主要的`JOIN`类型:`CROSS JOIN`、`LEFT JOIN`、`RIGHT JOIN`、`INNER JOIN`、`SELF JOIN`以及`FULL JOIN`。 #### 1. CROSS JOIN (交叉连接) `CROSS JOIN`也称为交叉连接,它的作用是返回两个表...

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

    根据不同的连接方式,`JOIN`可以分为几种类型,包括`INNER JOIN`、`OUTER JOIN`(左外联接`LEFT JOIN`、右外联接`RIGHT JOIN`以及全外联接`FULL JOIN`)和`CROSS JOIN`。每种类型的`JOIN`都有其独特的应用场景和特点。...

    inner join-outer join-cross join查询方式总结

    根据连接方式的不同,可以分为内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT JOIN 和 FULL JOIN)以及交叉连接(CROSS JOIN)。下面我们将详细探讨每种连接方式的特点、适用场景及其具体的实现方法。 #### 内...

    SQLServerUpdate多表Join

    ### SQL Server Update 多表 Join 知识点详解 在 SQL Server 中,有时我们需要更新多个表中的数据,尤其是在这些表之间存在某种关联的情况下。本文将详细介绍如何使用 `UPDATE` 语句结合 `JOIN` 来实现对多个表的...

    MySQL中的JOIN详解及sql实战

    ### MySQL中的JOIN详解及SQL实战 #### 一、引言 在关系型数据库管理系统(RDBMS)中,数据往往分布在多个表中。为了获取所需的信息,常常需要将这些表组合起来,这时就会用到JOIN操作。JOIN是SQL语言中非常重要的...

    sql语句子查询大全[借鉴].pdf

    SQL 子查询大全.left join、right join 和 inner join 差异详解 SQL 语句中,子查询是指在 FROM 子句中使用的 SELECT 语句,这种子查询也称为派生表或内联视图。子查询可以在 WHERE 子句、FROM 子句和 HAVING 子句...

    MSSQL内外连接(INNER JOIN)语句详解

    MSSQL内外连接(INNER JOIN)语句详解 MSSQL内外连接(INNER JOIN)语句是数据库管理系统中最基本的概念之一。今天,我们将详细讲解MSSQL内外连接(INNER JOIN)语句的概念、分类、使用方法和应用场景。 什么是INNER ...

    SQL连接JOIN例

    本文将详细介绍五种主要的`JOIN`类型:左连接(`LEFT JOIN`/`LEFT OUTER JOIN`)、右连接(`RIGHT JOIN`/`RIGHT OUTER JOIN`)、全连接(`FULL JOIN`/`FULL OUTER JOIN`)、内连接(`INNER JOIN`/`JOIN`)以及交叉连接(`...

    sql语句中join的用法

    下面我们将详细介绍几种常见的JOIN类型:内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)以及全连接(FULL JOIN),并通过具体的例子进行说明。 #### 一、内连接(INNER JOIN) 内连接是最常用...

    30秒懂SQL中的join(2幅图+30秒)

    通过上述内容,我们可以看出`INNER JOIN`、`LEFT JOIN`以及`RIGHT JOIN`之间的区别: - **INNER JOIN**:只返回两个表中具有匹配项的行。 - **LEFT JOIN**:返回左表的所有行,即使右表中没有匹配项,也会在结果...

Global site tag (gtag.js) - Google Analytics