zoukankan      html  css  js  c++  java
  • Difference between INNER and OUTER joins?

    Assuming you're joining on columns with no duplicates, which is a very common case:

    • An inner join of A and B gives the result of A intersect B, i.e. the inner part of a venn diagram intersection.
      
      An outer join of A and B gives the results of A union B, i.e. the outer parts of a Venn diagramunion.
      

        

    Examples

    Suppose you have two tables, with a single column each, and data as follows:

    A    B
    -    -
    1    3
    2    4
    3    5
    4    6
    

    Note that (1,2) are unique to A, (3,4) are common, and (5,6) are unique to B.

    Inner join

    An inner join using either of the equivalent queries gives the intersection of the two tables, i.e. the two rows they have in common.

    select * from a INNER JOIN b on a.a = b.b;
    select a.*,b.*  from a,b where a.a = b.b;
    

      

    a | b --+-- 3 | 3 4 | 4 

    Left outer join

    A left outer join will give all rows in A, plus any common rows in B.

    select * from a LEFT OUTER JOIN b on a.a = b.b;
    select a.*,b.*  from a,b where a.a = b.b(+);
    

      

    a | b --+----- 1 | null 2 | null 3 | 3 4 | 4 

    Full outer join

    A full outer join will give you the union of A and B, i.e. all the rows in A and all the rows in B. If something in A doesn't have a corresponding datum in B, then the B portion is null, and vice versa.

    select * from a FULL OUTER JOIN b on a.a = b.b;
    

      

    a | b -----+----- 1 | null 2 | null 3 | 3 4 | 4 null | 6 null | 5
  • 相关阅读:
    中心极限定理
    BCEloss和交叉熵损失的区别
    postgresql的python接口
    DataGrip 2020.1 安装与激活方法
    区块链技术
    TensorRT推理加速推断并提高吞吐量
    纯视觉取代slam做路径规划及避障的思路
    DL重新回顾总结
    OpenCV 轮廓方向
    OpenCV 低通滤波(可设置频率)
  • 原文地址:https://www.cnblogs.com/hephec/p/4570632.html
Copyright © 2011-2022 走看看