zoukankan      html  css  js  c++  java
  • SQL: difference between inner and outer join

    Assuming you're joining on columns with no duplicates, which is by far the most 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 diagram union.

    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
  • 相关阅读:
    Hbase 性能改进
    HBase总结(十一)hbase Java API 介绍及使用示例
    Java中如何遍历Map对象的4种方法
    Jsp分页实例---假分页
    Jsp分页实例---真分页
    Java正则表达式
    平均时间复杂度为O(nlogn)的排序算法
    常见排序算法--简单排序
    [kuangbin带你飞]专题一 简单搜索
    [kuangbin带你飞]专题一 简单搜索
  • 原文地址:https://www.cnblogs.com/anorthwolf/p/1938371.html
Copyright © 2011-2022 走看看