文档章节

SQL的JOIN家族

克松
 克松
发布于 2015/05/26 15:24
字数 497
阅读 10
收藏 0
点赞 0
评论 0

--先造数据

create table a

(id int,

name nvarchar(50))

insert into a(id,name)


insert into a(id,name)values(1,'张三')

values(2,'李四')

insert into a(id,name)

values(3,'王五')

insert into a(id,name)

values(4,'赵六')

 

 

create table b

(id int,

name nvarchar(50))

insert into b(id,name)

values(1,'张三')

insert into b(id,name)

values(2,'李四')

insert into b(id,name)

values(3,'王五')

insert into b(id,name)

values(5,'赵六')

 

select * from a

1张三

2李四

3王五

4赵六

select * from b

1张三

2李四

3王五

5赵六

一、inner join(等价于join)表示内连接,在两个表中存在至少一个匹配时,INNER JOIN 关键字返回行。

select * from a join b on a.id=b.id

1张三1张三

2李四2李四

3王五3王五

二、left join表示左连接,会从左表那里返回所有的行,即使在右表中没有匹配的行。

select * from a left join b on a.id=b.id

1张三1张三

2李四2李四

3王五3王五

4赵六NULLNULL

三、right join表示右连接,会从右表那里返回所有的行,即使在左表中没有匹配的行。

select * from a right join b on a.id=b.id

 

1张三1张三

2李四2李四

3王五3王五

NULLNULL5赵六

四、full join表示全连接,只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。

select * from a full join b on a.id=b.id

1张三1张三

2李四2李四

3王五3王五

4赵六NULLNULL

NULLNULL5赵六

五、cross join连接用于生成两张表的笛卡尔集。

select * from a cross join b

 

1张三1张三

2李四1张三

3王五1张三

4赵六1张三

1张三2李四

2李四2李四

3王五2李四

4赵六2李四

1张三3王五

2李四3王五

3王五3王五

4赵六3王五

1张三5赵六

2李四5赵六

3王五5赵六

4赵六5赵六

 

 


 

© 著作权归作者所有

共有 人打赏支持
克松

克松

粉丝 1
博文 2
码字总数 1191
作品 0
程序员
SQL--Advanced tutorials

LIKE--模糊查询 选取 url 以字母 https开始的所有网站 选取 url 包含模式 "oo" 的所有网站 JOIN--外连接查询 SQL JOIN 子句: 用于把来自两个或多个表的行结合起来,==基于这些表之间的共同字...

T-newcomer ⋅ 01/31 ⋅ 0

oracle下left join查询报ora-03113:一表多字段另一表同一字段关联

用友nc的web service接口报500,跟踪代码后发现是一个sql查询报错引起的。 该sql是多个表通过left join on连接起来的。其中一个表很多字段另一个表的一个字段关联, 一查询就报 ORA-03113: 通...

caoxie ⋅ 2015/06/18 ⋅ 3

SQL Server Join方式

0.参考文献 Microsoft SQL Server企业级平台管理实践 看懂SqlServer查询计划 1.测试数据准备 参考:Sql Server中的表访问方式Table Scan, Index Scan, Index Seek 这篇博客中的实验数据准备。...

嗯哼9925 ⋅ 2017/12/21 ⋅ 0

SQL Server基础 -- 基本用法查询

SQL Server基础 -- 基本用法查询 http://www.runoob.com/sql/sql-func-mid.html SQL 教程 SQL 教程 SQL 简介 SQL 语法 SQL SELECT SQL SELECT DISTINCT SQL WHERE SQL AND & OR SQL ORDER BY......

chenhao_asd ⋅ 03/19 ⋅ 0

SQL Join的一些总结

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

长平狐 ⋅ 2012/06/11 ⋅ 0

MySQL 查询优化器(四)

2.5 LEFT JOIN查询 该测试主要用于测试LEFT JOIN与JOIN的处理逻辑上的差异,具体查询处理逻辑如下所示: JOIN:prepare阶段 setuptables():同2.1测试。 setupfields():同2.1测试。 setupcon...

tara_qri ⋅ 2015/09/29 ⋅ 0

MySQL 查询优化器(三)

2、复合查询 在进行复合查询时,为了体现外连接(left join、right join)和一般联合查询的区别,对student表增加了几条记录,而这几条记录在stdcur和course中都没有对应的记录。 2.1 多表联...

tara_qri ⋅ 2015/09/29 ⋅ 0

图文并茂详解 SQL JOIN

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

xrzs ⋅ 2013/05/31 ⋅ 5

MySQL 查询优化器

数据表 CREATE TABLE ( int(11) NOT NULL, varchar(20) NOT NULL DEFAULT '', varchar(20) NOT NULL DEFAULT '', tinyint(4) NOT NULL DEFAULT '0', tinyint(3) unsigned NOT NULL DEFAULT '......

tara_qri ⋅ 2015/09/25 ⋅ 0

sql多表连接查询

本文主要列举两张和三张表来讲述多表连接查询。 新建两张表: 表1:student 截图如下: 表2:course 截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际开发中我们不会这样建表,实...

aminqiao ⋅ 2014/06/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

三步为你的App集成LivePhoto功能

摘要:LivePhoto是iOS9新推出的一种拍照方式,类似于拍摄Gif图或录制视频片段生成图片。如果没有画面感,可以联想《哈利波特》霍格沃茨城堡的壁画,哈哈,很炫酷有木有,但坑爹的是只有iphone6S以...

壹峰 ⋅ 20分钟前 ⋅ 0

centos7 git安装

由于centos中的源仓库中git不是最新版本,需要进行源码安装。 1、查看yum仓库git信息 [root@iZm5e3d4r5i5ml889vh6esZ zh]# yum info gitLoaded plugins: fastestmirrorLoading mirror s...

xixingzhe ⋅ 29分钟前 ⋅ 0

input file 重复上传同一张图片失效的解决办法

解决办法 方法一:来回切换input[type='file']的type属性值,可以是‘text’,'button','button'....,然后再切换回来‘file’ 方法二:每次取消图片预览后,重置input[type='file']的value的...

时刻在奔跑 ⋅ 29分钟前 ⋅ 0

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情。简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口;困难是因为我们不了解算法细节,很难去根...

xiaomin0322 ⋅ 34分钟前 ⋅ 0

WampServer默认web服务器根目录位置

安装WampServer之后的web服务器根目录默认位置在WampServer安装目录下的www:

临江仙卜算子 ⋅ 36分钟前 ⋅ 0

Redux的一些手法记录

Redux Redux的基本概念见另一篇文。 这里记录一下Redux在项目中的实际操作的手法。 actions 首先定义action.js,actions的type,可以另起一个action-type.js文件。 action-type.js用来存...

LinearLaw ⋅ 37分钟前 ⋅ 0

android 手势检测(左右滑动、上下滑动)

GestureDetector类可以让我们快速的处理手势事件,如点击,滑动等。 使用GestureDetector分三步: 1. 定义GestureDetector类 2. 初始化手势类,同时设置手势监听 3. 将touch事件交给gesture...

王先森oO ⋅ 51分钟前 ⋅ 0

java 方法的执行时间监控 设置超时(Future 接口)

java 方法的执行时间监控 设置超时(Future 接口) import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor......

青峰Jun19er ⋅ 55分钟前 ⋅ 0

一名开源小白的Apache成长自述

今天收到了来自Apache Vote我成为Serviceomb项目Committer的邮件,代表自己的贡献得到了充分的肯定;除了感谢团队的给力支持,我更希望将自己的成长经历——如何践行Apache Way的心得介绍给大...

微服务框架 ⋅ 58分钟前 ⋅ 0

vim介绍、颜色显示和移动光标、一般模式下复制、剪切和粘贴

1.vim 是 vi 的升级版 vim 是带有颜色显示的 mini安装的系统,一般都不带有vim [root@aminglinux-128 ~]# yum install -y vim-enhanced已加载插件:fastestmirror, langpacksLoading mir...

oschina130111 ⋅ 58分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部