数据库左连接、右连接、内连接、全连接

数据库左连接、右连接、内连接、全连接,第1张

1.INNER JOIN (内连接)

        内连接是一种一一映射关系,就是两张表都有的才能显示出来

            SELECT A.PK AS A_PK,A.Value AS A_Value,B.PK AS B_PK,B.Value AS B_Value

            FROM table_a A

            INNER JOIN table_b B

            ON A.PK = B.PK

2.LEFT JOIN (左连接)

        左连接是左边表的所有数据都有显示出来,右边的表数据只显示共同有的那部分,没有对应的部分只能补空显示,所谓的左边表其实就是指放在left join的左边的表

用韦恩图表示如下:

                SELECT A.PK AS A_PK,A.Value AS A_Value,B.PK AS B_PK,B.Value AS B_Value

               FROM table_a A

                LEFT JOIN  table_b B

                ON A.PK = B.PK

3.RIGHT JOIN(右连接)

        右连接正好是和左连接相反的,这里的右边也是相对right join来说的,在这个右边的表就是右表

用韦恩图表示如下:

            SELECT A.PK AS A_PK,A.Value AS A_Value,B.PK AS B_PK,B.Value AS B_Value

            FROM table_a A

            RIGHT JOIN  table_b B

            ON A.PK = B.PK

4.OUTER JOIN(外连接、全连接){mysql不支持外连接}

        查询出左表和右表所有数据,但是去除两表的重复数据

韦恩图表示如下:

            SELECT A.PK AS A_PK,A.Value AS A_Value,B.PK AS B_PK,B.Value AS B_Value

            FROM table_a A

            FULL  JOIN table_b B

            ON A.PK = B.PK

悬浮元组:

    在自然连接中,被舍弃的元组被称为悬浮元组

1、 左连接

    是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空。左联接的结果集包括 LEFT 子句中指定的左表的所有行,而不仅仅是联接列所 匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

2、 右联接

    是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值

3     全连接:

        是返回两个表中的所有的值,没有对应的数据则输出为空。

         内连接

                       等值连接

                       非等值连接

                       自链接

         外连接

                        左外连接

                        右外连接

                        全外连接

         交叉连接

1、意思不一样

左连接:只要左边表中有记录,数据就能检索出来,而右边有的记录必要在左边表中有的记录才能被检索出来。

右连接:右连接是只要右边表中有记录,数据就能检索出来。

2、空值不一样

左连接是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空。

右联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

左连接实例

在左外连接和右外连接时都会以一张表为基表,该表的内容会全部显示,然后加上两张表匹配的内容。如果基表的数据在另一张表没有记录。那么在相关联的结果集行中列显示为空值(NULL)。

对于外连接, 也可以使用“(+) ”来表示。 关于使用(+)的一些注意事项:

1、(+) *** 作符只能出现在where子句中,并且不能与outer join语法同时使用。

2、当使用(+) *** 作符执行外连接时,如果在where子句中包含有多个条件,则必须在所有条件中都包含(+) *** 作符。

以上内容参考:百度百科-外连接


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9940741.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存