【问题标题】:Compare inner join and outer join SQL statements比较内连接和外连接 SQL 语句
【发布时间】:2010-12-20 17:09:16
【问题描述】:

内连接和外连接有什么区别?这两种join的具体含义是什么?

【问题讨论】:

    标签: sql inner-join outer-join


    【解决方案1】:

    INNER JOIN 返回两个表中都存在的行

    OUTER JOIN 返回任一表中存在的所有行

    【讨论】:

    • 如果两个表中都存在连接条件,则内连接从两个表中返回值......
    【解决方案2】:

    维基百科有一篇关于这个主题的不错的长文章 [这里](http://en.wikipedia.org/wiki/Join_(SQL))

    但基本上:

    • 内连接返回所有表中存在满足 where 子句的行的结果
    • 外连接返回结果,其中至少有一个表中存在满足 where 子句的行

    【讨论】:

      【解决方案3】:

      看看杰夫阿特伍德的出色表现:

      A Visual Explanation of SQL Joins

      马克

      【讨论】:

      【解决方案4】:

      您使用 INNER JOIN 从两个表中返回所有匹配的行。 IE。在结果表中,所有行和列都有值。

      在 OUTER JOIN 中,结果表可能有空列。外连接可以是 LEFT 也可以是 RIGHT

      LEFT OUTER JOIN 返回第一个表中的所有行,即使第二个表中没有匹配项。

      RIGHT OUTER JOIN 返回第二个表中的所有行,即使第一个表中没有匹配项。

      【讨论】:

        【解决方案5】:

        假设一个包含客户和订单的示例模式:

        • INNER JOIN:仅检索具有订单的客户。

        • LEFT OUTER JOIN:检索所有有订单或无订单的客户。

        • RIGHT OUTER JOIN:检索所有有或没有匹配客户记录的订单。

        更详细的信息请见Inner and Outer Join SQL Statements

        【讨论】:

          【解决方案6】:

          如果记录出现在两个表中,内连接只返回一个连接行。 取决于方向的外连接将显示一个表中的所有记录,并连接到存在相应行的连接表中的数据

          【讨论】:

            【解决方案7】:

            使用数学集,

            Inner Join is A ^ B;
            Outer Join is A - B.
            

            所以 (+) 是您在查询中的 A 方。

            【讨论】:

              猜你喜欢
              • 2012-07-10
              • 2015-02-20
              • 2016-03-15
              • 1970-01-01
              • 2017-09-26
              • 1970-01-01
              • 1970-01-01
              • 2011-03-16
              • 2016-06-07
              相关资源
              最近更新 更多