zoukankan      html  css  js  c++  java
  • 2016/09/29 SQL中的join

     

    1.建表

    首先建tb_a并插入数据。

    1 createtable tb_a(symbol varchar2(32) , sname varchar2(32)); 2 insertinto tb_a(symbol, sname) values ('A','B'); 3 insertinto tb_a(symbol, sname) values ('G','H');

    tb_a表结构如下

    image

    接着建立tb_b并插入数据

    1 createtable tb_b(symbol varchar2(32) , tdate varchar2(32) ,tclose varchar2(32)); 2 insertinto tb_b(symbol, tdate, tclose) values ('A','C','D'); 3 insertinto tb_b(symbol, tdate, tclose) values ('X','E','F');

    tb_b表结构如下

    image

    2.INNER JOIN(内连接)

    其中INNER关键字可以省略,并且只有在表a和表b中都有匹配行时,才返回。

    1 select a.symbol, 2 a.sname, 3 b.tdate, 4 b.tclose 5 from tb_a a 6 innerjoin tb_b b 7 on a.symbol = b.symbol;

    等价于

    1 select a.symbol, 2 a.sname, 3 b.tdate, 4 b.tclose 5 from tb_a a, 6 tb_b b 7 where a.symbol = b.symbol;

    等价于

    1 select a.symbol, 2 a.sname, 3 b.tdate, 4 b.tclose 5 from tb_a a 6 join tb_b b 7 on a.symbol = b.symbol;

    返回结果:

    image

     

    3.OUTER JOIN(外连接)

    其中OUTER可省略。分为(LEFT OUTER JOIN,RIGHT OUTER JOIN ,FULL JOIN)。

    3.1 LEFT OUTER JOIN

    当左表中的行在右表中没有匹配行时,也返回。返回的记录中,选择的右表的内容为NULL。

    1 select a.symbol, 2 a.sname, 3 b.tdate, 4 b.tclose 5 from tb_a a 6 leftjoin tb_b b 7 on a.symbol = b.symbol;

    返回结果:

    image

    3.2 RIGHT OUTER JOIN

    当右表中的行在左表中没有匹配行时,也返回。返回的记录中,选择的左表的内容为NULL。

    1 select a.symbol, 2 a.sname, 3 b.tdate, 4 b.tclose 5 from tb_a a 6 rightjoin tb_b b 7 on a.symbol = b.symbol;

    返回结果:

    image

    3.3 FULL JOIN

    可以理解为LEFT和RIGHT的集合。

    1 select a.symbol, 2 a.sname, 3 b.tdate, 4 b.tclose 5 from tb_a a 6 fulljoin tb_b b 7 on a.symbol = b.symbol;

    返回结果:

    image

    4.CROSS JOIN(交叉连接)

    笛卡尔积。

    1 select a.symbol, 2 a.sname, 3 b.tdate, 4 b.tclose 5 from tb_a a 6 crossjoin tb_b b;

    返回结果:

    image

  • 相关阅读:
    Spring Cloud Alibaba Sentinel 服务限流降级
    干掉 Feign,Spring Cloud Square 组件发布
    Linux命令之free
    Java 导入excel获取表格信息
    [转] 阿里云服务器 liunx 安装配置 redis
    tomcat 动态日志查看
    linux服务器只部署了2个项目,却时常内存占满的问题解决路程
    电脑换了,重装了,配置了环境,然后重新导入项目, 结果爆红
    IDEA External libraries 不显示Maven中引入的repository
    linux 手动释放buff/cache
  • 原文地址:https://www.cnblogs.com/zcr3108346262/p/5919184.html
Copyright © 2011-2022 走看看