SQL中各种join以及它们的区别

作者: coder_girl | 来源:发表于2023-11-07 12:01 被阅读0次

    join的类型

    1.inner join 内连接(可直接用join)
    查询的结果是左表和右表关联字段相同的交集。即查询结果为下图重合部分的数据。


    内连接

    2.left join 左连接
    使用left join查询的结果就是以左表为准,左表的数据全部查询,而右表的数据则只显示匹配的数据,不匹配的数据为null。


    左连接

    3.right join 右连接
    查询结果是以右表的数据为准,右表的数据全部显示,左表则显示和右表交集部分的数据。可以用下图表示,查询的结果右表的所有值,左表中有匹配的则有值,不匹配的则null表示,和left join 相反!


    右连接

    4.union
    UNION 操作符用于合并两个或多个 SELECT 语句的结果集。但是,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。UNION 只选取记录,而UNION ALL会列出所有记录。【即:union 相同的记录会合并成一条记录,union all 会显示全部不合并】


    union

    5.union all


    union all

    6.FULL OUTER JOIN 全外连接【注意!!!mysql 不支持】
    全外连接,FULL OUTER JOIN,告诉DBMS生成的结果表中,除了包括匹配行外,还包括JOIN关键字(FROM子句中)左边表和右边表的不匹配行。全外连接实际上可以表示为:

    全外连接 = 内连接 + 左边表中失配的元组 + 右边表中失配的元组。

    相关文章

      网友评论

        本文标题:SQL中各种join以及它们的区别

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