`

数据库 left join,right join,inner join用法举例

 
阅读更多

现有A和B两个表
表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(左联接) 
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(右联接) 
SELECT * FROM a RIGHT JOING 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(相等联接或内联接) 
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                a20050111     1                2006032401 
2                a20050112     2                2006032402 
3                a20050113     3                2006032403 
4                a20050114     4                2006032404 
结果说明: 
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.

分享到:
评论

相关推荐

    ThinkPHP采用原生query实现关联查询left join实例

    在本实例中,我们将深入探讨如何使用ThinkPHP的原生`query`方法实现左连接(LEFT JOIN)的关联查询。 首先,我们要理解什么是左连接。在SQL中,左连接是一种连接两个表的方式,返回左表的所有记录,即使右表中没有...

    sql语句中join的用法

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

    SQL _join on 和where的执行顺序1

    JOIN操作主要有四种类型:LEFT JOIN、RIGHT JOIN、INNER JOIN和FULL JOIN,每种都有其特定的用途。 1. LEFT JOIN(左连接): LEFT JOIN返回左表(即在JOIN语句前的表)的所有记录,即使在右表中没有匹配的记录。...

    数据库内外连接举例

    数据库连接是数据库操作中的一种重要方法,用于合并来自多个表的数据。主要分为内连接、外连接和交叉连接,每种连接都有其特定的应用场景和逻辑。 内连接(INNER JOIN)是最常见的连接类型,它返回两个表中列相等的...

    MySQL left join操作中on和where放置条件的区别介绍

    在SQL查询中,`LEFT JOIN` 是一种连接两个或多个表的方法,以便从左表(通常是主表)中返回所有行,即使在右表中没有匹配的行。在这个过程中,`ON` 和 `WHERE` 子句都是用来指定条件的,但它们在查询逻辑中的作用...

    labview论坛-数据库应用例子Code.rar_LabVIEW 数据库_数据库_数据库操作应用举例labview

    你可以通过组合不同的JOIN类型(如INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN)来满足特定的数据聚合需求。 LabVIEW数据库操作的基本步骤包括: 1. **建立连接**:使用"Connect to Database.vi"来建立到...

    数据库的最后冲刺复习题

    7. 描述JOIN操作的用途,并举例说明INNER JOIN、LEFT JOIN、RIGHT JOIN的区别。 8. 如何在SQL中创建、修改和删除表? 9. 什么是索引?创建索引的优点和可能的缺点是什么? 10. SQL中如何实现分组和排序(GROUP BY和...

    MySQL中join语句的基本使用教程及其字段对性能的影响

    本文将深入探讨JOIN的基本使用方法以及字段字符集编码如何影响性能。 JOIN语句的基础在于它能根据两个表中指定字段的关联来提取数据。在MySQL中,JOIN通常与ON关键字一起使用,其基本语法如下: ```sql FROM table...

    sql各种查询语句举例附 数据库

    常见的JOIN类型有INNER JOIN(只返回匹配的行),LEFT JOIN(返回左表所有行及右表匹配的行),RIGHT JOIN(返回右表所有行及左表匹配的行),FULL JOIN(返回两个表的所有行,即使某一边没有匹配项)。 7. **UNION...

    LINQ体验(6)——LINQtoSQL语句之Join和OrderBy[参照].pdf

    3. **GroupJoin**:类似于LEFT JOIN,它将一个集合中的元素与另一个集合中匹配的元素分组,即使在第二个集合中没有匹配项,也会返回第一个集合的所有元素。 举例来说,在一对多关系中,例如Customers和Orders,可以...

    Microsoft SQL Server 2000 技巧.doc

    如果在`Products`表中有一些产品没有对应的供应商记录,使用Left Outer Join可以确保所有产品记录都包含在结果中,即使供应商信息为空。 掌握这些SQL Server 2000的技巧,无论是更新操作、存储过程的编写,还是...

    sql多变查询举例 语句

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是SQL中的多表查询技术,具体涉及到了左连接(Left Join)、右连接(Right Join)、内连接(Inner Join)以及全连接(Full Outer Join)。...

    ORACLE数据库SQL优化---表连接类型.docx

    Oracle数据库的SQL优化是数据库管理员和开发人员关注的重要领域,特别是在处理复杂的表...通过调整连接顺序、选择合适的连接方法和单表访问策略,以及明智地使用内外连接,我们可以显著提升Oracle数据库的SQL执行性能。

    数据库表合并场景实践测试SQL

    1. 数据表连接(JOIN):这是最基础的表合并方式,包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。内连接返回两个表中匹配的记录,左连接返回左表的所有记录及与之...

    mysql数据库学习总结.pdf

    - **外连接**(LEFT JOIN, RIGHT JOIN)返回所有左表或右表的行,即使没有匹配的行。 - **交叉连接**(CROSS JOIN)返回两个表的笛卡尔积,即所有可能的组合。 - **联合查询**(UNION)用于合并多个SELECT语句的...

    mysql数据库学习总结整理.pdf

    - **外连接**:包括左连接(`LEFT JOIN`)、右连接(`RIGHT JOIN`)和全连接(`FULL JOIN`) - **交叉连接**:`SELECT ... FROM table1 CROSS JOIN table2;` - **联合查询**:将多个查询的结果合并成一个结果集,...

    SQL_左外连接_右外连接_全连接_内连接

    左外连接返回左表(在`LEFT JOIN`或`LEFT OUTER JOIN`之后指定的表)的所有行,即使在右表中没有匹配的行。对于右表中没有匹配的行,结果集中相应列的值将为NULL。例如,如果在`authors`和`publishers`表中,`LEFT ...

    mysql数据库面试题及答案(29题).zip

    - **JOIN操作优化**:INNER JOIN、LEFT JOIN、RIGHT JOIN等,理解不同类型的JOIN对性能的影响。 - **子查询与联接的区别**:在特定场景下,子查询和联接的性能差异。 3. **事务与并发控制**: - **ACID属性**:...

    Oracle数据库常用语句实例和经典面试题总结

    有内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)等类型。 六、子查询 子查询可以在SELECT、FROM或WHERE子句中嵌套,用于执行更复杂的查询: ```sql SELECT column FROM table ...

    SQL-interview-.rar_interview

    - 请解释INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN的区别。 - 在什么情况下会使用自连接,给出一个实际的例子。 - 如何优化JOIN操作以提高查询性能? 4. **索引** - 索引的作用是什么?它们有哪些类型,如...

Global site tag (gtag.js) - Google Analytics