前言

最近忙着开发x省冷链追溯系统,天天干到晚上十一点多才回到家,周末也加班,没啥时间写博客,闲下来再好好写写

业务: sql语句统计出入库数据。

问题:只统计了X端入库单。

原因: 没有发现X端的数据库中只有入库单是有a字段数据而出库单是没有的,并使用了a字段去inner join,导致只能查到入库单进行统计操作。注:出入库单是同一张表,统计数据时,部分数据需要用到a字段去关联其他表。

解决: 采用left join。

以前一直在想什么时候能用到left join 、 inner 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左连接内连接内容请搜索得牛网以前的文章或继续浏览下面的相关文章希望大家以后多多支持得牛网!

MySQL什么用于左连接_简单谈谈mysql左连接内连接相关推荐

  1. mysql慢查询检查流程_简单谈谈MySQL优化利器-慢查询

    慢查询 首先,无论进行何种优化,开启慢查询都算是前置条件.慢查询机制,将记录过慢的查询语句(事件),从而为DB维护人员提供优化目标. 检查慢查询是否开启 通过show variables like ' ...

  2. 简单的mysql左链接_简单谈谈mysql左连接内连接

    前言 最近忙着开发x省冷链追溯系统,天天干到晚上十一点多才回到家,周末也加班,没啥时间写博客,闲下来再好好写写 业务: sql语句统计出入库数据. 问题:只统计了X端入库单. 原因: 没有发现X端的数 ...

  3. mysql 跳表 b 树_简单谈谈Mysql索引与redis跳表

    摘要 面试时,交流有关mysql索引问题时,发现有些人能够涛涛不绝的说出B+树和B树,平衡二叉树的区别,却说不出B+树和hash索引的区别.这种一看就知道是死记硬背,没有理解索引的本质.本文旨在剖析这 ...

  4. mysql int()_简单谈谈MySQL中的int(m)

    我们在设计表的时候,如果碰到需要设置int(整型)的时候,通常会按照惯例(大家都这样写)设置成int(11).那么这里为什么是11呢?代表的又是什么呢? 以前我一直以为这里是在限制int显示的宽度,后 ...

  5. mysql如何做计划任务_简单的mysql 过程计划任务

    首先讲讲过程是什么东西, 过程差不多就是SQL用的java之于方法. 把一段sql做成过程后一个简单的调用就可以批量执行这些sql,很方便. 其实就像java后台写个执行复杂sql的方法,你只是把这段 ...

  6. mysql 查询不使用索引_简单的mySQL查询不使用索引

    我有一个非常奇怪的问题与MySQL和简单的查询与简单的索引.我试图使用这个查询: SELECT * FROM `counter_links` WHERE `link_id`=1544;正如你所看到的, ...

  7. mysql临时表是什么意思_来谈谈MySQL的临时表,到底是个什么东西,以及怎么样产生的...

    介绍临时表之前,我们首先来看这么一句语句: CREATE TABLE`words` ( `id`int(11) NOT NULLAUTO_INCREMENT, `word`varchar(64) DE ...

  8. MySQL多重条件模糊查询_简单实现mysql多字段模糊查询

    在后台的项目中,会经常遇到,就是信息的查找,这里就举个简单的例子,如搜索某一个产品的信息,在一个表里面有多个字段,而搜索的内容可能是其中的某个字段,这样只有多字段查询才能实现. MySQL多字段模糊查 ...

  9. 表连接查询(多表查询,内连接,左外连接,右外连接)

    什么是表连接:同时对多张表进行查询操作,表与表之间要通过连接条件来连接.一般这个连接条件是主键列是否等于外键列.表连接的主要三种方式是: 连接方式 概念说明 内连接 分为显示内连接和隐式内连接,查询的 ...

最新文章

  1. NOIp 2014 #4 无线网络发射器选址 Label:模拟
  2. matlab怎么把变量一起换掉,MATLAB只是简单地把表达式里的变量名替换成数值,而不给出结果...
  3. 内核态与用户态【转载】
  4. Bootstrap:弹出框和提示框效果以及代码展示
  5. Raki的PRML阅读笔记 第1章:Introduction
  6. xcode 自定义Eclipse里边常用的快捷键
  7. intouch写数据到MySQL_如何将intouch数据插入到SQL数据库
  8. 2020版二建教材pdf_2020年二建教材电子版下载
  9. 生成权重 transorflow:Early stoppting conditioned on metric `val_accuracy` which is not available
  10. element-ui input 身份证号码验证
  11. 一个服务器多个网站搜外问答,多个网站共用一台服务器对SEO有影响吗?
  12. 一个 将一个无效参数传递给了将无效参数视为严重错误的函数 及写入位置时发生访问冲突的问题的解决
  13. 飞书纷享销客CRM两者联合,使销售协同管理更高效
  14. 如何锻炼自己的口才?
  15. 先正达将在科创板上会:拟募资650亿元,预计全年收入超2100亿元
  16. python中遍历列表和字典的方法
  17. Redis 存储List对象
  18. HTML添加背景音乐/视频
  19. mysql-ACID
  20. The error may involve mapper.UserMapper.AddUser-Inline

热门文章

  1. 诺基亚今天推出6500系列两款新机---诺基亚 6500 classic 和诺基亚 6500 slide
  2. bzoj 4300 绝世好题——DP
  3. office2010连接服务器响应慢,Office2010打开文件卡顿,解决办法?
  4. 珍宝鸭的力扣练习(8):贪心算法练习合集
  5. 简谈卷积—幽默笑话谈卷积
  6. Cesium 删除primitive和entity
  7. RockyLinux/almalinux设置 dnf / yum 国内镜像
  8. 750ti显卡能支持服务器吗,NVIDIA Geforce GTX 750 Ti能玩吃鸡吗
  9. eating的中文意思_eating怎么读什么意思
  10. [No0000C1]Excel 删除空白行和空白列VBA代码