2016/09/29 SQL中的join
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中都有匹配行时,才返回。
a.sname,
b.tdate,
b.tclose
from tb_a a
innerjoin tb_b b
on a.symbol = b.symbol;
等价于
a.sname,
b.tdate,
b.tclose
from tb_a a,
tb_b b
where a.symbol = b.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。
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。
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的集合。
a.sname,
b.tdate,
b.tclose
from tb_a a
fulljoin tb_b b
on a.symbol = b.symbol;
返回结果:

4.CROSS JOIN(交叉连接)
笛卡尔积。
a.sname,
b.tdate,
b.tclose
from tb_a a
crossjoin tb_b b;
返回结果:

2016/09/29 SQL中的join的更多相关文章
- SQL中inner join、outer join和cross join的区别
对于SQL中inner join.outer join和cross join的区别简介:现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同 ...
- 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语 ...
- 【转载】SQL中inner join、outer join和cross join的区别
对于SQL中inner join.outer join和cross join的区别很多人不知道,我也是别人问起,才查找资料看了下,跟自己之前的认识差不多, 如果你使用join连表,缺陷的情况下是inn ...
- LINQ TO SQL 中的join(转帖)
http://www.cnblogs.com/ASPNET2008/archive/2008/12/21/1358152.html join对于喜欢写SQL的朋友来说还是比较实用,也比较容易接受的东西 ...
- sql中的join
首先准备数据 有以下数据,三张表:role(角色表).hero(英雄表).skill(技能表),我们以英雄联盟的数据做示例 一个hero对应一个role(我们这里暂定) 一个role可以对应多个her ...
- Access SQL中Left Join、Right Join和Inner Join的使用
1.表结构 表A 表B 2.Left Join 示例:2.1 Select * From A left join B on A. ...
- SQL中的Join和Where的区别
一.sql语句中left join.inner join中的on与where的区别 0.各种join操作的概念和作用 left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录. ...
- SQL中INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN区别
sql中的连接查询有inner join(内连接).left join(左连接).right join(右连接).full join(全连接)四种方式,它们之间其实并没有太大区别,仅仅是查询出来的结果 ...
- SQL中的join操作总结(非常好)
1.1.1 摘要 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接.外联接和交叉联接等.如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的 ...
随机推荐
- 高德JS依赖分析工程及关键原理
一.背景 高德 App 进行 Bundle 化后,由于业务的复杂性,Bundle 的数量非常多.而这带来了一个新的问题——Bundle 之间的依赖关系错综复杂,需要进行管控,使 Bundle 之间的依 ...
- Django中间件部分源码分析
中间件源码分析 中间件简介 中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和输出.每个中间件组件都负责做一些特定的 ...
- java 数组注意细节,例子解析
1. int x[]; 或int [] x; 此时却无物理的存在数组.需:数组名= new 数组元素类型[size]: a = new int [10]; 2. 不能使用任何未初始化的数组. 默认的初 ...
- css圆,背景,img填满等样式
background 属性 属性值 描述 background-color 单词颜色表示法.rgb.十六进制 设置元素的背景颜色 background-image url('http://www.aa ...
- Docker虚拟化之<基础理论>
1.虚拟化技术的概念 (1)虚拟化技术主要是将物理的资源转变为逻辑上可以管理的资源,以打破物理结构上的壁垒,让计算元件运行在虚拟的基础上,而不是真实的物理资源上.(2)虚拟化技术的底层是要进行虚拟化的 ...
- 普通用户修改时间 sudo
sudo date neokylinV7.0 desktop 1.给/etc/sudoers加权限 # chmod u+w /etc/sudoers 2.添加配置 # vim /etc/sudoer ...
- MySQL必知必会(Select, Where子句)
SELECT prod_name, prod_price FROM products WHERE prod_price = 2.5; SELECT prod_name, prod_price FROM ...
- 什么是渐进式框架 (vue.js)
渐进式意味着你可以将 vue 作为你项目的一部分嵌入其中,带来更丰富的交互体验
- git 使用详解(2)——安装+配置+获取帮助
安装 Git Git 有许多种安装方式,主要分为两种,一种是通过编译源代码来安装:另一种是使用为特定平台预编译好的安装包. 从源代码安装 若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本. ...
- [01]Go设计模式:单例模式(Singleton)
目录 单例模式 一.简介 二.代码实现 1.懒汉模式 2.饿汉模式 3.改进型懒汉模式 4. sync.once实现 5.测试用例 单例模式 一.简介 单例模式(Singleton Pattern)是 ...