美文网首页
数据库左连接、右连接、内连接、全连接

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

作者: 想像风一样的陈某 | 来源:发表于2021-07-01 13:35 被阅读0次

    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     全连接:

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

    sql99标准:

             内连接

                           等值连接

                           非等值连接

                           自链接

             外连接

                            左外连接

                            右外连接

                            全外连接

             交叉连接

    相关文章

      网友评论

          本文标题:数据库左连接、右连接、内连接、全连接

          本文链接:https://www.haomeiwen.com/subject/ziyrultx.html