1.建表

首先建tb_a并插入数据。

));
insertinto tb_a(symbol, sname) values ('A','B');
insertinto tb_a(symbol, sname) values ('G','H');

tb_a表结构如下

接着建立tb_b并插入数据

));
insertinto tb_b(symbol, tdate, tclose) values ('A','C','D');
insertinto tb_b(symbol, tdate, tclose) values ('X','E','F');

tb_b表结构如下

2.INNER JOIN(内连接)

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

select a.symbol,
a.sname,
b.tdate,
b.tclose
from tb_a a
innerjoin tb_b b
on a.symbol = b.symbol;

等价于

select a.symbol,
a.sname,
b.tdate,
b.tclose
from tb_a a,
tb_b b
where a.symbol = b.symbol;

等价于

select a.symbol,
a.sname,
b.tdate,
b.tclose
from tb_a a
join tb_b b
on a.symbol = b.symbol;

返回结果:

3.OUTER JOIN(外连接)

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

3.1 LEFT OUTER JOIN

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

select a.symbol,
a.sname,
b.tdate,
b.tclose
from tb_a a
leftjoin tb_b b
on a.symbol = b.symbol;

返回结果:

3.2 RIGHT OUTER JOIN

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

select a.symbol,
a.sname,
b.tdate,
b.tclose
from tb_a a
rightjoin tb_b b
on a.symbol = b.symbol;

返回结果:

3.3 FULL JOIN

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

select a.symbol,
a.sname,
b.tdate,
b.tclose
from tb_a a
fulljoin tb_b b
on a.symbol = b.symbol;

返回结果:

4.CROSS JOIN(交叉连接)

笛卡尔积。

select a.symbol,
a.sname,
b.tdate,
b.tclose
from tb_a a
crossjoin tb_b b;

返回结果:

2016/09/29 SQL中的join的更多相关文章

  1. SQL中inner join、outer join和cross join的区别

    对于SQL中inner join.outer join和cross join的区别简介:现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同 ...

  2. SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别

    前言: 今天主要的内容是要讲解SQL中关于Join.Inner Join.Left Join.Right Join.Full Join.On. Where区别和用法,不用我说其实前面的这些基本SQL语 ...

  3. 【转载】SQL中inner join、outer join和cross join的区别

    对于SQL中inner join.outer join和cross join的区别很多人不知道,我也是别人问起,才查找资料看了下,跟自己之前的认识差不多, 如果你使用join连表,缺陷的情况下是inn ...

  4. LINQ TO SQL 中的join(转帖)

    http://www.cnblogs.com/ASPNET2008/archive/2008/12/21/1358152.html join对于喜欢写SQL的朋友来说还是比较实用,也比较容易接受的东西 ...

  5. sql中的join

    首先准备数据 有以下数据,三张表:role(角色表).hero(英雄表).skill(技能表),我们以英雄联盟的数据做示例 一个hero对应一个role(我们这里暂定) 一个role可以对应多个her ...

  6. Access SQL中Left Join、Right Join和Inner Join的使用

    1.表结构 表A                                     表B 2.Left Join 示例:2.1 Select * From A left join B on A. ...

  7. SQL中的Join和Where的区别

    一.sql语句中left join.inner join中的on与where的区别 0.各种join操作的概念和作用 left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录. ...

  8. SQL中INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN区别

    sql中的连接查询有inner join(内连接).left join(左连接).right join(右连接).full join(全连接)四种方式,它们之间其实并没有太大区别,仅仅是查询出来的结果 ...

  9. SQL中的join操作总结(非常好)

    1.1.1 摘要 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接.外联接和交叉联接等.如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的 ...

随机推荐

  1. HTTP 协议漫谈

    转载出处:HTTP 协议漫谈 简介 网络上已经有不少介绍 HTTP 的好文章,对HTTP的一些细节介绍的比较好,所以本篇文章不会对 HTTP 的细节进行深究,而是从够高和更结构化的角度将 HTTP 协 ...

  2. Java面向对象学习目录

    Java面向对象学习目录 以下为面向对象学习目录,有待补充的部分,我还会再后续的学习过程中加以补充与修改~ 一.面向对象编程思想 二.Java类及类中成员 属性 方法 构造器 代码块 内部类 面向对象 ...

  3. selenium常用命令之操作页面元素及获取元素内容的事件整理

    /**id <input type="text" id="phone" name="phone" class="LoginT ...

  4. linux系统资源查看常用命令

    1.vmstat vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.IO读写.CPU活动等进行监视.它是对系统的整体情况进行统计, ...

  5. 计蒜客 The Preliminary Contest for ICPC Asia Nanjing 2019

    F    Greedy Sequence You're given a permutation aa of length nn (1 \le n \le 10^51≤n≤105). For each  ...

  6. spring奇怪异常记录(会逐渐记录)

    1 严重: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error cr ...

  7. 【JAVA - 基础】之String存储机制浅析

    本文主要解决以下几个问题 String源码解析? String和new String的区别? String通过"+"或concat累加时的对象创建机制? StringBuilder ...

  8. CSS文字,文本常用样式

    CSS文字,文本常用样式 字体属性 font-family 如果电脑没有第一个字体,就切换到下一个 body { font-family: Microsoft YaHei,Helvetica,Aria ...

  9. MySql简单的增删改查语句 js

    最近在项目中需要连接数据库,做增删改查的功能,sql语句整理做了以下记录(基于NodeJs,注:data为你的真实数据): (一)新增插入表中数据: sql: 'insert into work(表名 ...

  10. MySQL主从扩展知识

    6月29/7月2日任务 说明:这两天无新课,主要是扩充知识面注意:这两天的任务,需要回专贴.需要你们通过看这些东西总结成自己的心得. 不能照搬,必须要自己理解,能看多少就看多少,看不完也没有关系,但一 ...