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

  • 相关阅读:
    设置一个alias直接推到github
    JSON
    分部式类定义
    sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表 的解决办法
    ibatis 连接数据库时的错误
    ibatis 连接数据库
    [ASP.NET] C#字符串处理
    20130401学习笔记
    最大公约数和最小公倍数
    从客户端中检测到有潜在危险的 Request.Form 值 解决方案
  • 原文地址:https://www.cnblogs.com/zcr3108346262/p/5919184.html
Copyright © 2011-2022 走看看