文档章节

SQL join leftjoin right join

恋佳
 恋佳
发布于 2015/07/22 14:06
字数 569
阅读 3
收藏 0

有两张表student和team表 

Student


 id    card_id    name    age    team_id
402881e64b5d8b54014b5d8b570f0001    s3    zhangsan    25    402881e64b5d8b54014b5d8b56f10000
402881e64b5d8b54014b5d8b570f0002    s4    zhangsan    25    402881e64b5d8b54014b5d8b56f10000
402881e64b5d8b54014b5d8b570f0003    s5    zhangsan    25    402881e64b5d8b54014b5d8b56f10000
402881e64b5d8b54014b5d8b570f0004    s6    zhangsan    25    402881e64b5d8b54014b5d8b56f10000
402881e64b5d8b54014b5d8b570f0005    s1    zhangsan    25    402881e64b5d8b54014b5d8b56f10000
402881e64b5d8b54014b5d8b570f0006    s2    zhangsan    25    402881e64b5d8b54014b5d8b56f10000


Team



id    name
402881e64b5988cd014b5988cf700000    team1
402881e64b5d8b54014b5d8b56f10000    team2




(1)    左外连接

select*from student_3 leftjoin team ON team.id = student_3.team_id ;

id    card_id    name    age    team_id    id1    name1
402881e64b5d8b54014b5d8b570f0001    s3    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0002    s4    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0003    s5    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0004    s6    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0005    s1    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0006    s2    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2

以左边的表为主表。主表的所有信息都会出现在结果集中。而右表team只显示了符合条件(team.id = student_3.team_id)的记录。同理如果左表中包含了一条记录,不符合on关键字以后的条件,左表记录也会出现在结果集中,而此时右表为NULL

(2)右外连接

id    card_id    name    age    team_id    id1    name1
402881e64b5d8b54014b5d8b570f0001    s3    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0002    s4    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0003    s5    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0004    s6    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0005    s1    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0006    s2    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
   NULL                                                                                                                                                                                     402881e64b5988cd014b5988cf700000    team1






右外连接以右表作为主表,主表的所有记录都会出现在结果集中。左表显示了符合on关键字的条目。如果不存在,则为null。

(3)内连接

内连接有两种

第一种不指定任何限定条件,查询结果为两个表的笛卡尔积,通常这种查询没有什么意义

select*from student_3 innerjoin team

id    card_id    name    age    team_id    id1    name1
402881e64b5d8b54014b5d8b570f0001    s3    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5988cd014b5988cf700000    team1
402881e64b5d8b54014b5d8b570f0001    s3    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0002    s4    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5988cd014b5988cf700000    team1
402881e64b5d8b54014b5d8b570f0002    s4    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0003    s5    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5988cd014b5988cf700000    team1
402881e64b5d8b54014b5d8b570f0003    s5    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0004    s6    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5988cd014b5988cf700000    team1
402881e64b5d8b54014b5d8b570f0004    s6    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0005    s1    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5988cd014b5988cf700000    team1
402881e64b5d8b54014b5d8b570f0005    s1    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0006    s2    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5988cd014b5988cf700000    team1
402881e64b5d8b54014b5d8b570f0006    s2    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2











第二种带有限定条件,这种情况返回的是满足限定条件的条目。

select*from student_3 innerjoin team on team.id = student_3.team_id





id    card_id    name    age    team_id    id1    name1
402881e64b5d8b54014b5d8b570f0001    s3    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0002    s4    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0003    s5    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0004    s6    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0005    s1    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2
402881e64b5d8b54014b5d8b570f0006    s2    zhangsan    25    402881e64b5d8b54014b5d8b56f10000    402881e64b5d8b54014b5d8b56f10000    team2

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

© 著作权归作者所有

恋佳
粉丝 0
博文 76
码字总数 62107
作品 0
大连
私信 提问
Mysql 多表联合查询效率分析及优化

多表连接类型 1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: [sql]view plaincopyprint? SELECT * FROM table1 CROSS JOIN table2 SELECT * FROM......

蓝狐乐队
2014/04/30
236
0
laravel left join携带多个条件的写法

在laravel中使用leftJoin添加多个条件时,如select a.* from a left join b on a.id = b.pid and b.status = 1这种类似sql,发现框架自身封装的leftJoin不支持多个参数传递(当然可用写原生s...

jichun
2018/05/26
5.8K
0
Mysql left join,right join,inner join的效率比较

一.Join语法概述 join 用于多表中字段之间的联系,语法如下: table1:左表;table2:右表。 JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关...

mickelfeng
2017/10/25
216
0
聊聊storm的JoinBolt

序 本文主要研究一下storm的JoinBolt 实例 JoinBolt storm-2.0.0/storm-client/src/jvm/org/apache/storm/bolt/JoinBolt.java JoinBolt继承了BaseWindowedBolt,定义了Selector selectorType......

go4it
2018/10/26
20
0
MYSQL 查询优化之路-之DISTINCT全表扫描

背景:今天对一个20w的表做关联查询,创建各种索引,没有提高执行的效率,使用EXPLAIN检查,总是提示“Using temporary”全表扫描,这不是我想的。通过度娘,各种百度,是因为DISTINCT使用了...

卯金刀GG
03/28
49
0

没有更多内容

加载失败,请刷新页面

加载更多

快速排序与冒泡排序

快速排序与冒泡排序 比较基础,特准备写博客记录和思考一下

T型人才追梦者
21分钟前
2
0
OSChina 周三乱弹 —— 调查人员问狗 那你在做什么啊?

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐:《Let It Be》- John Denver 《Let It Be》- John Denver 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :每天看一遍,...

小小编辑
今天
6
0
高效程序员的45个习惯总结版-文末脑图

1 做事 一个重大的错误应该被当做一次学习而不是指责他人的机会,团队成员一起工作,应该互相帮助,而不是互相指责 2 欲速则不达 不要为了修复问题而去修复,要投入时间和精力保持代码整洁 ...

阿提说说
今天
18
0
带南海九段线分位数地图可视化(R语言版)

今天带来一篇承诺虾神的可视化博客。内容是使用R语言进行带南海九段线分位数地图可视化。虾神的原博文地址如下(Python版)。 Python实现带南海九段线分位数地图完整可视化版本(附代码及数据...

胖胖雕
今天
12
0
Nginx 的进程结构,你明白吗?

Nginx 进程结构 这篇文章我们来看下 Nginx 的进程结构,Nginx 其实有两种进程结构: 单进程结构 多进程结构 单进程结构实际上不适用于生产环境,只适合我们做开发调试使用。因为在生产环境中...

武培轩
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部