zoukankan      html  css  js  c++  java
  • 小示例分清表接关系

    -- 一个小示例分清 左右连接 与 外连接 关系

    -- 表顺序 t1 t2(注意表的前后排列顺序)

    -- 左连接,(+)号在右边,也就是 t2 这边,(+)号边交集

    -- 右连接,(+)号在左边,也就是 t1 这边,(+)号边交集

    image
    select * from(
    select 1 a, 2 b from dual
    union all
    select 2 a, 3 b from dual
    union all
    select 3 a, 4 b from dual
    ) t1
    -- left join 就是以左边集(t1)为全集,左边的全集 t1 全取出来,而右边集取 t1 t2 交集
    left join (
    select 1 a, 2 b from dual
    union all
    select 1 a, 7 b from dual
    union all
    select 2 a, 7 b from dual
    union all
    select 4 a, 7 b from dual
    ) t2
    on t1.a = t2.a

    image

    select * from(
    select 1 a, 2 b from dual
    union all
    select 2 a, 3 b from dual
    union all
    select 3 a, 4 b from dual
    ) t1,
    (
    select 1 a, 2 b from dual
    union all
    select 1 a, 7 b from dual
    union all
    select 2 a, 7 b from dual
    union all
    select 4 a, 7 b from dual
    ) t2
    where 1=1
    and t1.a = t2.a(+) -- 找出 (t1 t2 交集)+ (t1 在 t2 的差集)

    image

    select * from(
    select 1 a, 2 b from dual
    union all
    select 2 a, 3 b from dual
    union all
    select 3 a, 4 b from dual
    ) t1
    -- right join 就是以右边集(t2)为全集,左边集取 t1 t2 交集,而右边全集 t1 全取出来
    right join (
    select 1 a, 2 b from dual
    union all
    select 1 a, 7 b from dual
    union all
    select 2 a, 7 b from dual
    union all
    select 4 a, 7 b from dual
    ) t2
    on t1.a = t2.a

    image

    select * from(
    select 1 a, 2 b from dual
    union all
    select 2 a, 3 b from dual
    union all
    select 3 a, 4 b from dual
    ) t1,
    (
    select 1 a, 2 b from dual
    union all
    select 1 a, 7 b from dual
    union all
    select 2 a, 7 b from dual
    union all
    select 4 a, 7 b from dual
    ) t2
    where 1=1
    and t1.a(+) = t2.a  -- 找出 (t1 t2 交集)+ (t2 在 t1 的差集)

    image

    select * from(
    select 1 a, 2 b from dual
    union all
    select 2 a, 3 b from dual
    union all
    select 3 a, 4 b from dual
    ) t1
    -- full join = left join + rigth join 就是取 t1 t2 交集,同时也取 t1 t2 各自差集
    full join (
    select 1 a, 2 b from dual
    union all
    select 2 a, 7 b from dual
    union all
    select 4 a, 7 b from dual
    ) t2
    on t1.a = t2.a

  • 相关阅读:
    20165103 第四周查漏补缺
    20165103 2017-2018-2 《Java程序设计》第3周学习总结
    20165103 2017-2018-2 《Java程序设计》第2周学习总结
    20165103 2017-2018-2 《Java程序设计》第1周学习总结
    MySQL事务一致性理解
    mysql的事务四个特性以及 事务的四个隔离级别
    序列化和反序列化的简单理解
    内存溢出和内存泄漏的区别,产生原因以及解决方案
    oracle入门学习之oracle数据库结构
    Java微服务(Spring-boot+MyBatis+Maven)入门教程
  • 原文地址:https://www.cnblogs.com/quanweiru/p/2740697.html
Copyright © 2011-2022 走看看