zoukankan      html  css  js  c++  java
  • oracle中的内连接和外连接区别

    表t_user1,t_user2,t_user3,各有id,name两列 

    id

    name

    1

    10A

    2

    20A

    id

    name

    1

    10B

    3

    30B

    id

    name

    1

    10C

    4

    40C

    连接分为两种:内连接与外连接。

    A.内连接

    内连接,即最常见的等值连接,例:

    SELECT * 
    FROM t_user1,t_user2
    WHERE t_user1.id = t_user2.id


    结果

    id

    name

    id

    name

    1

    10A

    1

    10B

    B.外连接

    外连接分为左外连接,右外连接和全外连接。

    1.  左外连接 left outer join 或者 left join

    左外连接就是在等值连接的基础上加上主表中的未匹配数据,例:

    SELECT *
    FROM t_user1 
    LEFT OUTER JOIN  t_user2
    ON t_user1.id = t_user2.id

    Oracle 支持另一种写法

    SELECT * 
    FROM t_user1 ,t_user2
    WHERE t_user1.id=t_user2.id(+)

    结果:

    id

    name

    id

    name

    1

    10A

    1

    10B

    2

    20A

       

    三个表做左外连接

    SELECT *
    FROM t_user1
    LEFT OUTER JOIN t_user2
    ON t_user1.id=t_user2.id
    LEFT OUTER JOIN t_user3
    ON t_user1.id=t_user3.id

    Oracle 支持的另外一种写法

    SELECT *
    FROM t_user1,t_user2,t_user3
    WHERE t_user1.id=t_user2.id(+)
    AND t_user1.id=t_user3.id(+)

    结果:

    id

    name

    id

    name

    id

    name

    1

    10A

    1

    10B

    1

    10C

    2

    20A

           

    2. 右外连接 right outer join 或者 right join

    右外连接是在等值连接的基础上加上被连接表的不匹配数据

    SELECT *
    FROM t_user1
    RIGHT OUTER JOIN t_user2
    ON t_user1.id=t_user2.id

    Oracle支持的另一种写法

    SELECT *
    FROM t_user1,t_user2
    WHERE t_user1.id(+)=t_user2.id

    结果:

    id

    name

    id

    name

    1

    10A

    1

    10B

       

    3

    30B

    3.全外连接 full outer join 或者 full join

    全外连接是在等值连接的基础上将左表和右表的未匹配数据都加上

    SELECT * 
    FROM t_user1
    FULL OUTER JOIN t_user2
    ON t_user1.id=t_user2.id

    全外连接的等价写法,对同一表先做左连接,然后右连接

    SELECT  t_user1.*,t_user2.*
    FROM t_user1
    LEFT OUTER JOIN t_user2
    ON t_user1.id = t_user2.id
    UNION
    SELECT  t_user1.*,t_user2.*
    FROM t_user2
    LEFT OUTER JOIN t_user1
    ON t_user1.id = t_user2.id

    结果:

    id

    name

    id

    name

    1

    10A

    1

    10B

    2

    20A

       
       

    3

    30B

    就总结这么多吧。后面遇到再接着写。

  • 相关阅读:
    ZOJ Problem Set–2417 Lowest Bit
    ZOJ Problem Set–1402 Magnificent Meatballs
    ZOJ Problem Set–1292 Integer Inquiry
    ZOJ Problem Set–1109 Language of FatMouse
    ZOJ Problem Set–1295 Reverse Text
    ZOJ Problem Set–1712 Skew Binary
    ZOJ Problem Set–1151 Word Reversal
    ZOJ Problem Set–1494 Climbing Worm
    ZOJ Problem Set–1251 Box of Bricks
    ZOJ Problem Set–1205 Martian Addition
  • 原文地址:https://www.cnblogs.com/xubiao/p/5457254.html
Copyright © 2011-2022 走看看