zoukankan      html  css  js  c++  java
  • 左、右连接和内连接

    假设有A,B两个表。 表A记录如下:

    aID      aNum

    1          a20050111

    2          a20050112

    3          a20050113

    4          a20050114

    5          a20050115

    表B记录如下:

    bID      bName

    1          2006032401 
    2          2006032402 
    3          2006032403 
    4          2006032404 
    8         
    2006032408 

    --------------------------------------------
    1.left join sql语句如下: select * from A left join B on A.aID = B.bID 结果如下:

    aID        aNum           bID          bName

    1          a20050111      1          2006032401 
    2          a20050112      2          2006032402 
    3          a20050113      3          2006032403 
    4          a20050114      4          2006032404 
    5          a20050115    NULL     NULL
    (所影响的行数为 5 行)

    结果说明: left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的. 换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). B表记录不足的地方均为NULL.

    --------------------------------------------

    2.right join sql语句如下: select * from A right join B on A.aID = B.bID 结果如下:

    aID        aNum          bID            bName

    1          a20050111     1            2006032401 
    2          a20050112     2            2006032402 
    3          a20050113     3            2006032403 
    4          a20050114     4           
    2006032404 
    NULL     NULL            8            2006032408 (所影响的行数为 5 行)

    结果说明: 仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.

    --------------------------------------------
    3.inner join sql语句如下: select * from A innerjoin B on A.aID = B.bID

    结果如下:

    aID         aNum         bID              bName

    1           a20050111    1            2006032401 
    2           a20050112    2            2006032402 
    3           a20050113    3            2006032403 
    4           a20050114    4            2006032404

    结果说明: 很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.

    注:left和right是外连接,Inner是内连接。

  • 相关阅读:
    Hive 使用问题集锦
    scala def/val/lazy val区别以及call-by-name和call-by-value
    spark学习流程
    Hadoop
    Hive
    Chrome快捷键
    Java API帮助文档
    Java 访问修饰符与非访问修饰符
    java 关键字
    Solr配置Ikanalyzer分词器
  • 原文地址:https://www.cnblogs.com/AmyHu/p/9225326.html
Copyright © 2011-2022 走看看