简单谈谈mysql左连接内连接
作者:puyuma 发布时间:2024-01-13 06:54:24
前言
最近忙着开发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记录如下:
aIDaNum
1a20050111
2a20050112
3a20050113
4a20050114
5a20050115
表B记录如下:
bIDbName
12006032401
22006032402
32006032403
42006032404
82006032408
1.left join
sql语句如下:
select * from A
left join B
on A.aID = B.bID
结果如下:
aIDaNumbIDbName
1a2005011112006032401
2a2005011222006032402
3a2005011332006032403
4a2005011442006032404
5a20050115NULLNULL(所影响的行数为 5 行)
结果说明:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.
来源:https://blog.csdn.net/qq_39380155/article/details/112616096


猜你喜欢
- 本文实例讲述了Python功能键的读取方法。分享给大家供大家参考。具体分析如下:先getch一下得到a,如果等于0或者224,就说明是功能键
- UUID 全称是 Universally unique identifier,它是一种识别符,使用任意的计算机都可以生成,不需要一个中央数据
- 需 求 分 析 1、读取指定目录下的所有文件2、读取指定文件,输出文件内容3、创建一个文件并保存到指定目录实 现 过 程Python写代码简
- 纯代码通过神经网络实现线性回归的拟合参考链接中的文章,有错误,我给更正了。并且原文中是需要数据集文件的,我直接给替换成了一个数组,采用直接赋
- 常用php函数实现及介绍countcount是我们经常用到的一个函数,其功能是返回一个数组的长度。count这个函数,其复杂度是多少呢? 一
- 本文主要分析的是web.py库的application.py这个模块中的代码。总的来说,这个模块主要实现了WSGI兼容的接口,以便应用程序能
- 本文实例讲述了python计算方程式根的方法。分享给大家供大家参考。具体实现方法如下:''' roots = pol
- 目录1.触发器是什么?2.创建触发器创建触发器的语法如下:创建多个执行语句的触发器: NEW和OLD的使用:3.使用触发器1.触发
- LearningjQuery.com 博客帖子列表的左边有一个很酷的日期,如图:从图中我们看到,“2009”垂直排列在右侧。用Firebug
- 这几天做个了项。就是微信扫描二维码的然后进入公众号网页巴拉巴拉的,然后就很顺利的遇到了在安卓端扫码的时候,顺利的一塌糊涂,然后到了苹果端的时
- 有如下 borg pattern 的实现:class Borg(object): __shared_state = {}def
- 前言用阻塞 API 写同步代码最简单,但一个线程同一时间只能处理一个请求,有限的线程数导致无法实现万级别的并发连接,过多的线程切换也抢走了
- 现在我们用python代码实现感知器算法。# -*- coding: utf-8 -*-import numpy as npclass Pe
- 本文实例讲述了Python实现的简单模板引擎功能。分享给大家供大家参考,具体如下:#coding:utf- 8__author__=&quo
- 在这个文章中,我们将学习如何在感兴趣区域周围画最小面积矩形框。1.最小面积矩形框下图显示了两个矩形框,绿色的是普通矩形框,红色的是最小面积矩
- 结合工作中的内容和大家分享一次Left Jon优化的过程,希望能给同学们新的思路。【功能背景】 我们需要
- 根据题意理解:本质就是写分页查询:每页条数:10条;当前页码:4页;//第一种:select * from (select ROW
- 1. TVP, 表变量,临时表,CTE 的区别 TVP和临时表都是可以索引的,总是存在tempdb中,会增加系统数据库开销,而表变量和CTE
- mechanize是对urllib2的部分功能的替换,能够更好的模拟浏览器行为,在web访问控制方面做得更全面。结合beauti
- 本文实例讲述了Python使用matplotlib实现的图像读取、切割裁剪功能。分享给大家供大家参考,具体如下:# -*- coding:u