mysql中left join right join inner join用法分析
mysql数据库中的关联查询,基本都会用到left join,right join,inner join等查询方式,今天来说说这三种用法的区别
1.创建表test1,test2,插入测试数据
#创建表sql语句#
CREATE TABLE test1(
id int(10) AUTO_INCREMENT PRIMARY KEY,
name char(20)
)
CREATE TABLE test2(
bid int(10) AUTO_INCREMENT PRIMARY KEY,
mobile char(20)
)
#插入测试数据sql语句#
INSERT INTO test1 VALUES ( 1, '小明' ) , ( 2, '小强' ) , ( 3, '小王' ) , ( 4, '小张' ) , ( 5, '小东' );
INSERT INTO test2 VALUES ( 1, '13625878968' ) , ( 2, '13582687245' ) , ( 3, '13802598746' ) , ( 4, '15025893698' ) , ( 8, '13582584789' );
2.测试left join,right join,inner join用法
#left join(左连接)#
select a.*,b.* from test1 as a left join test2 as b on a.id=b.bid
结果如图

影响行数为5行,左表(test1)的记录将会全部表示出来,而右表(test2)只会显示符合搜索条件的记录(例子中为: test1.id = test2.bid).
test2表记录不足的地方均为NULL
#right join(右连接)#
select a.*,b.* from test1 as a right join test2 as b on a.id=b.bid
结果如图

影响行数为5行,与left join的结果刚好相反,这次是以右表(test2)为基础的,test1表不足的地方用NULL填充
#inner join(内连接)#
select a.*,b.* from test1 as a inner join test2 as b on a.id=b.bid
结果如图

影响行数为4行,这里只显示出了 test1.id = test2.bid的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录,精确匹配
mysql中left join right join inner join用法分析的更多相关文章
- Mysql中concat()、concat_ws()和 group_concat()的用法
一.CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串.使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为+----+ ...
- MySQL 中的共享锁和排他锁的用法
在 MySQL 中的行级锁.表级锁和页级锁中,咱们介绍过,行级锁是 MySQL 中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突.行级锁分为共享锁和排他锁两种,本文将详细介绍共享锁和排他锁的概 ...
- PHP中错误与异常的日志记录用法分析
原文:http://www.jb51.net/article/89548.htm ----------------------------------------------------------- ...
- mysql中explain输出列之id的用法详解
参考mysql5.7 en manual,对列id的解释: The SELECT identifier. This is the sequential number of the SELECT wit ...
- MySql 中 case when then else end 的用法
解释: SELECT case -------------如果 when sex='1' then '男' ---------- ...
- mysql中AES_ENCRYPT、AES_DNCRYPT及CONVERT的用法
这两天在弄公司的服务端项目的时候,发现mysql比较实用的3个函数,在这里给大家分享一下. 1.AES_ENCRYPT函数,这个函数的使用场景是对一些安全性要求比较高的数据使用AES加密,语法为: A ...
- MySQL中的insert ignore into, replace into用法总结
MySQL replace into 有三种形式: 1. replace into tbl_name(col_name, ...) values(...) 2. replace into tbl_na ...
- mysql中关于 like ,not like 的用法时不能显示空值的数据(空值不参与判断,直接过滤空值)
一般在项目中用法是(这种没办法显示空值的数据): select * from 表 where 字段 like %aaa%; 解决空值不显示(除了显示的数据外,空值数据也可以显示): select * ...
- mysql中limit 和 limit 与 offset 的用法(效果相同,用法不通过)
例1,假设数据库表student存在13条数据. 代码示例: 语句1:select * from student limit 9,4 语句2:slect * from student limit 4 ...
- C#中派生类调用基类构造函数用法分析
这里的默认构造函数是指在没有编写构造函数的情况下系统默认的无参构造函数 1.当基类中没有自己编写构造函数时,派生类默认的调用基类的默认构造函数例如: ? 1 2 3 4 5 6 7 8 9 10 11 ...
随机推荐
- 异常:Parameter 'username' not found. Available parameters are [arg1, arg0, param1, param2]
内容中包含 base64string 图片造成字符过多,拒绝显示
- 003.SQLServer数据库镜像高可用部署
一 数据库镜像部署准备 1.1 数据库镜像支持 有关对 SQL Server 2012 中的数据库镜像的支持的信息,请参考:https://docs.microsoft.com/zh-cn/previ ...
- hive 常用的 join 操作 实例
test_a 表 id value 1 java 2 python 3 c++ test_b 表 id value 1 java 2 go 3 php 4 c++ 1. join 计算的是笛卡尔积,不 ...
- css实现超出文本溢出用省略号代替
一.单行 实现单行文本的溢出显示省略号使用text-overflow:ellipsis属性,但需要配合使用另外两个属性使用才能达到效果. 如下: overflow:hidden; text-overf ...
- Modbus 指令
本节内容: 一.S7-1200 作为Modbus RTU 主站 二.S7-1200 作为Modbus RTU 从站 三.S7-1200 作为Modbus RTU 主站 S7-1200 作为Modbus ...
- c++学习书籍推荐《C++编程思想第一卷》下载
百度云及其他网盘下载地址:点我 编辑推荐 <C++编程思想>(第1卷)(第2版)第1版荣获"软件开发"杂志评选的1996年度 图书震撼大奖,中文版自2000年推出以来, ...
- 【小家Spring】Spring IoC是如何使用BeanWrapper和Java内省结合起来给Bean属性赋值的
#### 每篇一句 > 具备了技术深度,遇到问题可以快速定位并从根本上解决.有了技术深度之后,学习其它技术可以更快,再深入其它技术也就不会害怕 #### 相关阅读 [[小家Spring]聊聊Sp ...
- Java编程思想:File类list()方法
import java.util.regex.Pattern; import java.io.File; import java.io.FilenameFilter; public class Tes ...
- ASP.NET Core[源码分析篇] - Startup
应用启动的重要类 - Startup 在ASP.NET Core - 从Program和Startup开始这篇文章里面,我们知道了Startup这个类的重要性,它主要负责了: 配置应用需要的服务(服务 ...
- 博客一键保存本地exe可视化界面文件
说明 非常感谢nick老师的提点老师博客:https://home.cnblogs.com/u/nickchen121/ 项目连接 1.码云:https://gitee.com/wjup/html_t ...