博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
left join , right join ,inner join 的区别
阅读量:5749 次
发布时间:2019-06-18

本文共 1773 字,大约阅读时间需要 5 分钟。

  hot3.png

执行一下代码

DROP TABLE IF EXISTS student;DROP TABLE IF EXISTS teacher;-- 创建老师表create TABLE teacher(	id int primary key auto_increment,	name char(20));-- 创建学生表create TABLE student(	id int primary key auto_increment,	name char(20),	teacher_id INT,	FOREIGN KEY keyStudent (teacher_id) REFERENCES teacher(id));-- 插入老师INSERT INTO teacher VALUES (null,"张老师");INSERT INTO teacher VALUES (null,"王老师");INSERT INTO teacher VALUES (null,"赵老师");INSERT INTO teacher VALUES (null,"李老师");INSERT INTO teacher VALUES (null,"方老师");-- 插入学生 关联老师 张老师INSERT INTO student VALUES (null,"杨晓为",1);INSERT INTO student VALUES (null,"郭金红",1);INSERT INTO student VALUES (null,"李小庄",1);-- 插入学生 关联老师 王老师INSERT INTO student VALUES (null,"江大红",2);INSERT INTO student VALUES (null,"胡作为",2);-- 插入学生 关联老师 赵老师INSERT INTO student VALUES (null,"吴婷平",3);INSERT INTO student(name) VALUES("牛阿郎");INSERT INTO student(name) VALUES("虽无恐");

 1. 测试left JOIN

SELECT stu.id AS "学生序号" ,stu.name AS "学生姓名",tea.id AS "老师序号",tea.name AS "老师姓名" FROM  
student stu left JOIN teacher tea ON (stu.teacher_id=tea.id)

 得到结果集:

Left join 结果集

可以看出 left join 查出的数据 按照  from 后的表 为 主表 会把主表条件满处的数据全部查出

主表有的数据才能查出,难怕查出主表连接的那张表没数据,主表依然会查出数据

2.测试right JOIN 

SELECT stu.id AS "学生序号" ,stu.name AS "学生姓名",tea.id AS "老师序号",tea.name AS "老师姓名" FROM 
student stu right JOIN teacher tea ON (stu.teacher_id=tea.id)

得到 测试结果集

Right left 结果集

right join 与 left join 刚刚反 ,他把join后面的表当作主表

3.测试inner JOIN 

SELECT stu.id AS "学生序号" ,stu.name AS "学生姓名",tea.id AS "老师序号",tea.name AS "老师姓名" FROM  
student stu inner JOIN teacher tea ON (stu.teacher_id=tea.id)

得到 inner join 结果集

inner join 结果集

这个好,只要一方条件 没达到 ,那么 也查不出数据

 个人总结

  join 连表 

   如 left join 做例子 我们可以把 from 后的表当作 主表 数据库先查主表 得到数据集 在与 被连接的表进行匹配(on 后面的条件),如果 匹配成功 那么就 得到 被连接表的数据,如果 匹配不成功 那么 主表已经查出 被连接的表 没有数据 那么直接 给被连接的表的值就为空

转载于:https://my.oschina.net/dongli/blog/54314

你可能感兴趣的文章
了解Amdahl定理,该定理再多核时代有怎样的影响?
查看>>
JAVA8 Stream 浅析
查看>>
inner join on, left join on, right join on要详细点的介绍
查看>>
SAS vs SSD对比测试MySQL tpch性能
查看>>
Spring boot 整合CXF webservice 全部被拦截的问题
查看>>
Pinpoint跨节点统计失败
查看>>
时间戳转换为时间(不为1970)
查看>>
win2003 NAT 访问互联网
查看>>
【Canal源码分析】Canal Server的启动和停止过程
查看>>
机房带宽暴涨问题分析及解决方法
查看>>
wdOS系统下源码编译安装LAMP环境(linux+apache+php+mysql)
查看>>
iOS 绕过相册权限漏洞
查看>>
我的友情链接
查看>>
XP 安装ORACLE
查看>>
八、 vSphere 6.7 U1(八):分布式交换机配置(vMotion迁移网段)
查看>>
[转载] 中华典故故事(孙刚)——19 万岁
查看>>
修改hosts文件里面的主机名,oralce asm无法启动
查看>>
Maven学习总结(十)——使用Maven编译项目gbk的不可映射问题
查看>>
php5编译安装常见错误和解决办法集锦
查看>>
Linux远程访问及控制
查看>>