文档章节

SQL的JOIN家族

克松
 克松
发布于 2015/05/26 15:24
字数 497
阅读 10
收藏 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赵六

 

 


 

© 著作权归作者所有

共有 人打赏支持
上一篇: GIT实用教程
下一篇: GIT实用教程
克松

克松

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

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

T-newcomer
01/31
0
0
oracle下left join查询报ora-03113:一表多字段另一表同一字段关联

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

caoxie
2015/06/18
256
3
MySQL 查询优化器(四)

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

tara_qri
2015/09/29
37
0
sql多表查询之一:Where 和 On的秘密

今天给大家转载一篇《sql多表查询之一:Where 和 On的秘密》,对于还在SQL初级阶段的朋友来说,sql多表查询问题是一个比较有趣也容易出错的技术。什么时候会用到sql多表查询呢?是在两张或两...

oecp
2011/07/27
0
1
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
66
0

没有更多内容

加载失败,请刷新页面

加载更多

CockroachDB

百度云上的CockroachDB 云数据库 帮助文档 > 产品文档 > CockroachDB 云数据库 > 产品描述 开源NewSQL – CockroachDB在百度内部的应用与实践 嘉宾演讲视频及PPT回顾:http://suo.im/5bnORh ...

miaojiangmin
24分钟前
1
0
I2C EEPROM驱动实例分析

上篇分析了Linux Kernel中的I2C驱动框架,本篇举一个具体的I2C设备驱动(eeprom)来对I2C设备驱动有个实际的认识。 s3c24xx系列集成了一个基于I2C的eeprom设备at24cxx系列。at24cxx系列芯片包...

yepanl
26分钟前
2
0
spring mvc拦截器,实现统计http请求的后台运行时间

使用两种方式,实现拦截http请求的后台运行时间。 废话不多说直接上代码 /** * Http请求时间统计 * 拦截所有请求 */public class HttpRquestTimeInterceptor extends HandlerIntercepto...

兜兜毛毛
43分钟前
3
0
设计模式之工厂模式

本篇博文主要翻译这篇文章: https://www.journaldev.com/1392/factory-design-pattern-in-java 由于翻译水平有限,自认为许多地方翻译不恰当,欢迎各位给出宝贵的建议,建议大家去阅读原文。...

firepation
59分钟前
5
0

中国龙-扬科
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部