mysql几种连接方式(简单谈谈mysql左连接内连接)
mysql几种连接方式
简单谈谈mysql左连接内连接前言
最近忙着开发x省冷链追溯系统,天天干到晚上十一点多才回到家,周末也加班,没啥时间写博客,闲下来再好好写写
业务: sql语句统计出入库数据。
问题: 只统计了X端入库单。
原因: 没有发现X端的数据库中只有入库单是有a字段数据而出库单是没有的,并使用了a字段去inner join,导致只能查到入库单进行统计操作。注:出入库单是同一张表,统计数据时,部分数据需要用到a字段去关联其他表。
解决: 采用left join。
以前一直在想什么时候能用到left join 、 inner join ,这次可给我上了一课。
关于它们之间的区别,可以看看下面这篇文章:
inner join 与 left join 之间的区别
这里复制一小段:
关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了。
需求是从数据库查数据,在前端以柱形图的形式展现出来,查到的数据按行业分组,显示每个行业的户数及户数占比,涉及到的字段有A表的用户数、总用户数和B表的行业名称。本来是不管查不查的到数据,在X轴都应该显示行业名称的,结果是X、Y轴都没有任何数据显示。问题就是我用错了联结方式。
一、sql的left join 、right join 、inner join之间的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
举例如下:
表A记录如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表B记录如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
1.left join
sql语句如下:
|
select * from A left join B on A.aID = B.bID |
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL(所影响的行数为 5 行)
结果说明:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.
总结
到此这篇关于mysql左连接内连接的文章就介绍到这了,更多相关mysql左连接内连接内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/qq_39380155/article/details/112616096
- navicat15.0.28注册码(Navicat for MySQL 11注册码激活码汇总)
- mysql中默认排序教程(基于mysql 默认排序规则的坑)
- mysqlinnodb锁使用教程(MySQL Innodb关键特性之插入缓冲insert buffer)
- Mysql官方性能测试工具mysqlslap的使用简介(Mysql官方性能测试工具mysqlslap的使用简介)
- mysql修改初始密码教程(使用MySQL命令行修改密码)
- mysql数据表的创建与管理(MySQL数据操作-DML语句的使用)
- mysql和explain哪个好(MySQL EXPLAIN输出列的详细解释)
- mysql中数据类型的学习体会(MySQL 实现lastInfdexOf的功能案例)
- mysql的简单介绍(MySQL Shell的介绍以及安装)
- mysql mvcc 流程(Mysql MVCC机制原理详解)
- mysql读写分离代码实现(MySQL Router实现MySQL的读写分离的方法)
- centos7.5安装mysql教程(CentOS8下MySQL 8.0安装部署的方法)
- mysql从入门到实践万字详解(mysql基础知识扫盲)
- mysql索引建立及应用(MYSQL创建索引,这些知识应该了解)
- mysql编码设置
- mysql8.0中如何导入数据(mysql8.0.20数据目录迁移的方法)
- 苏志燮赵恩静结婚,韩国四大公共财产变三人,这么快就有替补了(苏志燮赵恩静结婚)
- 《内在美》后,一大波新韩剧来袭,李钟硕朴信惠宋慧乔玄彬回归(一大波新韩剧来袭)
- 给孩子选购保温杯,注意这4个步骤,比颜值更重要(给孩子选购保温杯)
- 保温好 容量大 颜值高 保温杯你给娃娃买对了吗(保温好容量大颜值高)
- 《道德经》 人生避开骄狂,才能免去祸患(道德经人生避开骄狂)
- 郭麒麟(郭麒麟)
热门推荐
- Jquery对数组的操作
- html5列表与布局(HTML5逐步分析实现拖放功能的方法)
- canvas 绘图解决方案(高清屏下canvas重置尺寸引发的问题的解决)
- phpstudymysql启动又自动停止(Win下解决phpStudy MySQL启动失败)
- dedecms本地搭建(dedecms blog博客模板安装说明)
- 最好的虚拟主机(如何选择适合自己的香港虚拟主机?)
- Python实现模拟点击(用python实现刷点击率的示例代码)
- sqlserver追加主键(sqlserver主键自增的实现示例)
- 阿里云ecs 获取公网ip(阿里云ECS云服务器未添加安全组规则设置导致通过公网IP地址不能访问)
- php递归实现(PHP递归统计系统中代码行数)