`

MySQL 左连接 右连接

阅读更多
表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
    INNER 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

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

相关推荐

    MYSQL 左连接右连接和内连接的详解及区别

    主要介绍了MYSQL 左连接右连接和内连接的详解及区别的相关资料,需要的朋友可以参考下

    剖析MySQL左连接右连接等值连接异同.pdf

    根据文件中提供的信息,我们可以详细探讨MySQL中的不同连接类型,包括左连接(LEFT JOIN)、右连接(RIGHT JOIN)、内连接(INNER JOIN)以及等值连接的概念和它们之间的异同。 首先,我们需要明确什么是“连接”...

    左外连接右外连接,内连接区别

    本文将深入探讨三种主要的连接类型:左外连接、右外连接和内连接,并通过具体的例子来阐述它们之间的区别。 首先,让我们从内连接(INNER JOIN)开始。内连接返回的是两个表中满足特定连接条件的记录。在示例中,`...

    MYSQL数据库中关于左连接右连接和内连接的区别.doc

    MYSQL数据库中关于左连接右连接和内连接的区别.doc

    mysql之左连接与右连接.doc

    MySQL 左连接与右连接详解 MySQL 中的连接操作是指将两个或多个表中的数据结合起来,以便更好地查询和分析数据。左连接(LEFT JOIN)和右连接(RIGHT JOIN)是两种常见的连接类型,本文将详细介绍它们的区别和使用...

    mysql的左右内连接用法实例

    本文将深入讲解MySQL的左连接、右连接以及内连接的用法,并通过实例进行解析。 首先,我们创建了两个表`user_id`和`user_profile`。`user_id`存储独立的ID,而`user_profile`除了ID外还有名字(name)字段。然后,...

    mysql 左连接、右连接和内连接

    在MySQL中,我们经常使用三种类型的连接:左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)。这些连接方式根据不同的需求,可以提供不同程度的数据组合。 首先,左连接(LEFT JOIN)以左侧表格...

    MySQL数据库:外连接.pptx

    外连接分为两种主要类型:左外连接和右外连接,每种类型都有其特定的用途和效果。 1. 左外连接(LEFT OUTER JOIN): 左外连接的结果集会包含左表(即在JOIN语句之前指定的表)的所有行,即使右表中没有与之匹配的...

    MySQL表LEFT JOIN左连接与RIGHT JOIN右连接的实例教程

    LEFT JOIN,也称为左连接,它的基本语法是:`FROM table1 LEFT JOIN table2 ON condition...`。这种连接方式会返回左表(table1)的所有记录,即使在右表(table2)中没有找到匹配的记录。对于那些在右表中找不到...

    mysql连接查询(左连接,右连接,内连接)

    MySQL 提供了多种连接类型,包括 INNER JOIN(内连接)、LEFT JOIN(左连接)和 RIGHT JOIN(右连接)。这些连接方式主要根据不同的数据需求,确定如何处理两表之间的匹配关系。 1. INNER JOIN(内连接) INNER ...

    DBeaver连接mysql数据库图文教程

    **DBeaver 连接 MySQL 数据库的详细步骤** DBeaver 是一款强大的数据库管理工具,因其免费、开源且支持多种数据库的特点,深受开发者和DBA的青睐。它提供了直观的用户界面,使得数据库的管理和操作变得更加简单。...

    剖析:MySQL的左连接、右连接、等值连接异同

    为便于更多的技友快速读懂、理解,我们只讨论2张表对象进行连接操作的情况,大于2张表对象进行的连接操作原理也是一样的。SELECTM.columnname……,N.*columnname…..FROMleft_tableMLEFTJOINright_table NONM.column...

    python中使用mysql数据连接

    打开数据库连接,正常显示中文标签,正常显示负号,使用 execute() 方法执行 SQL 查询

    数据库表连接(内外、左右连接).docx

    在MySQL中,虽然不直接支持全外连接,但可以通过结合左外连接和右外连接达到相同的效果。例如,`SELECT * FROM voteMaster vm LEFT OUTER JOIN voter vt ON vm.id=vt.id UNION ALL SELECT * FROM voteMaster vm ...

    30-视频31MySQL表连接

    MySQL支持多种类型的连接,包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL OUTER JOIN)。其中: 1. 内连接:返回两个表中存在匹配的记录,只包含匹配的行。 2. 左连接:返回...

Global site tag (gtag.js) - Google Analytics