浅谈sql连接查询的区别 inner,left,right,full
作者:jingxian 发布时间:2024-01-17 08:23:35
--table1 表
ID NAME QQ PHONE
1 秦云 10102800 13500000
2 在路上 10378 13600000
3 LEO 10000 13900000
4 秦云 0241458 54564512
--table2 表
ID NAME sjsj gly
1 秦云 2004-01-01 00:00:00.000 李大伟
2 秦云 2005-01-01 00:00:00.000 马化腾
3 在路上 2005-01-01 00:00:00.000 马化腾
4 秦云 2005-01-01 00:00:00.000 李大伟
5 在路上 2005-01-01 00:00:00.000 李大伟
--inner join 只要是符合要求的就显示
select * from table1 t1
inner join table2 t2 on t1.name=t2.name<br><br>--得到的结果
ID NAME QQ PHONE ID NAME sjsj gly
1 秦云 10102800 13500000 1 秦云 2004-01-01 00:00:00.000 李大伟
4 秦云 0241458 54564512 1 秦云 2004-01-01 00:00:00.000 李大伟
1 秦云 10102800 13500000 2 秦云 2005-01-01 00:00:00.000 马化腾
4 秦云 0241458 54564512 2 秦云 2005-01-01 00:00:00.000 马化腾
2 在路上 10378 13600000 3 在路上 2005-01-01 00:00:00.000 马化腾
1 秦云 10102800 13500000 4 秦云 2005-01-01 00:00:00.000 李大伟
4 秦云 0241458 54564512 4 秦云 2005-01-01 00:00:00.000 李大伟
2 在路上 10378 13600000 5 在路上 2005-01-01 00:00:00.000 李大伟
--left join 以左表为主,会看到若右表有 关联字段重复,则 左边关联的字段信息翻倍。
select * from table1 t1 (1)
left join table2 t2 on t1.name=t2.name
与
select * from table2 t2 (2)
right join table1 t1 on t1.name=t2.name
结果相等,不过两表的顺序换一下而已。
(1)结果
ID NAME QQ PHONE ID NAME sjsj gly
1 秦云 10102800 13500000 1 秦云 2004-01-01 00:00:00.000 李大伟
1 秦云 10102800 13500000 2 秦云 2005-01-01 00:00:00.000 马化腾
1 秦云 10102800 13500000 4 秦云 2005-01-01 00:00:00.000 李大伟
2 在路上 10378 13600000 3 在路上 2005-01-01 00:00:00.000 马化腾
2 在路上 10378 13600000 5 在路上 2005-01-01 00:00:00.000 李大伟
3 LEO 10000 13900000 NULL NULL NULL NULL
4 秦云 0241458 54564512 1 秦云 2004-01-01 00:00:00.000 李大伟
4 秦云 0241458 54564512 2 秦云 2005-01-01 00:00:00.000 马化腾
4 秦云 0241458 54564512 4 秦云 2005-01-01 00:00:00.000 李大伟
(2)结果
ID NAME sjsj gly ID NAME QQ PHONE
1 秦云 2004-01-01 00:00:00.000 李大伟 1 秦云 10102800 13500000
2 秦云 2005-01-01 00:00:00.000 马化腾 1 秦云 10102800 13500000
4 秦云 2005-01-01 00:00:00.000 李大伟 1 秦云 10102800 13500000
3 在路上 2005-01-01 00:00:00.000 马化腾 2 在路上 10378 13600000
5 在路上 2005-01-01 00:00:00.000 李大伟 2 在路上 10378 13600000
NULL NULL NULL NULL 3 LEO 10000 13900000
1 秦云 2004-01-01 00:00:00.000 李大伟 4 秦云 0241458 54564512
2 秦云 2005-01-01 00:00:00.000 马化腾 4 秦云 0241458 54564512
4 秦云 2005-01-01 00:00:00.000 李大伟 4 秦云 0241458 54564512
--left join 已右表为主 ,与left 同理
select * from table1 t1
right join table2 t2 on t1.name=t2.name
ID NAME QQ PHONE ID NAME sjsj gly
1 秦云 10102800 13500000 1 秦云 2004-01-01 00:00:00.000 李大伟
4 秦云 0241458 54564512 1 秦云 2004-01-01 00:00:00.000 李大伟
1 秦云 10102800 13500000 2 秦云 2005-01-01 00:00:00.000 马化腾
4 秦云 0241458 54564512 2 秦云 2005-01-01 00:00:00.000 马化腾
2 在路上 10378 13600000 3 在路上 2005-01-01 00:00:00.000 马化腾
1 秦云 10102800 13500000 4 秦云 2005-01-01 00:00:00.000 李大伟
4 秦云 0241458 54564512 4 秦云 2005-01-01 00:00:00.000 李大伟
2 在路上 10378 13600000 5 在路上 2005-01-01 00:00:00.000 李大伟
--full join 两表数据都取出来,不管是否符合
select * from table1 t1
full join table2 t2 on t1.name=t2.name
结果
ID NAME QQ PHONE ID NAME sjsj gly
1 秦云 10102800 13500000 1 秦云 2004-01-01 00:00:00.000 李大伟
1 秦云 10102800 13500000 2 秦云 2005-01-01 00:00:00.000 马化腾
1 秦云 10102800 13500000 4 秦云 2005-01-01 00:00:00.000 李大伟
2 在路上 10378 13600000 3 在路上 2005-01-01 00:00:00.000 马化腾
2 在路上 10378 13600000 5 在路上 2005-01-01 00:00:00.000 李大伟
3 LEO 10000 13900000 NULL NULL NULL NULL
4 秦云 0241458 54564512 1 秦云 2004-01-01 00:00:00.000 李大伟
4 秦云 0241458 54564512 2 秦云 2005-01-01 00:00:00.000 马化腾
4 秦云 0241458 54564512 4 秦云 2005-01-01 00:00:00.000 李大伟


猜你喜欢
- 一、界面介绍文件导航区域 能够 浏览/定位/打开 项目文件文件编辑区域 能够 编辑 当前打开的文件控制台区域 能够:输出程序执行内容跟踪调试
- 1. position:static所有元素的默认定位都是:position:static,这意味着元素没有被定位,而且在文档中出现在它应该
- 使用摄像头追踪人脸由于血液流动引起的面部色素的微小变化实现实时脉搏评估。效果如下(演示视频): 由于这是通过比较面部色素的变化评估
- Macromedia StandardMacromedia Dreamweaver MXMenu Commandsphotoshop快捷键大
- 前言MySQL是目前非常流行的数据库之一,也是中小企业持久化存储的首选数据库。不同于我们日常学习,在实际应用中,MySQL服务都会挂载在某台
- 一、AnacondaAnaconda(水蟒)是一个捆绑了Python、conda、其他相关依赖包的一个软件。包含了180多个可学计算包及其依
- 所见即所得的文本编辑器目前在网上流传的已经有很多了,并且都比较优秀,就我个人而言,用过的有以下几个: ·
- #!/usr/bin/python#coding:utf-8#write:JACK#info:ftp exampleimport ftpli
- 原理python没有办法直接和c++共享内存交互,需要间接调用c++打包好的库来实现流程C++共享内存打包成库python调用C++库往共享
- 一.修改/etc/my.cnf文件default-character-set=utf8[mysqld]datadir= ar b/mysql
- 重装电脑,在windows和虚拟机里面的Ubuntu里都安装了Pycharm专业版,安装的时候我都选择了vim插件,装好之后打开发现ctrl
- 本文实例讲述了Python机器学习算法库scikit-learn学习之决策树实现方法。分享给大家供大家参考,具体如下:决策树决策树(DTs)
- 什么是树表查询?借助具有特殊性质的树数据结构进行关键字查找。本文所涉及到的特殊结构性质的树包括:二叉排序树。 平衡二叉树。使用上述树结构存储
- 相信很多人都跟小编一样不管是什么账号,如果很久不用就会忘记登录密码,像数据库SQL Server2008也一样有用户名和登录密码,下面小编就
- 本文实例讲述了Python实现的圆形绘制。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-#! python3i
- 网站域名一般都会选简短易记的,因为这对于网站宣传来说也可以省不少力。而被很多网站忽视的站内Url结构则在一定程度上反映出网站的整体架构。当设
- 1、python安装可以跨平台2、有两个版本2.7和3.6,第三方库适用2.7版,两个版本不兼容windows安装:第一种方法官网安装:在官
- 前言段(segment)是一种在数据库中消耗物理存储空间的任何实体(一个段可能存在于多个数据文件中,因为物理的数据文件是组成逻辑表空间的基本
- 前言安全性是所有数据库管理系统的一个重要特征。理解安全性问题是理解数据库管理系统安全性机制的前提。最近和同事在做数据库权限清理的事情,主要是
- 分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系统中取出每个学科前3名的学生。这种查询在SQL Server 2005之前,写起