行转列经典案例(left join)
2019独角兽企业重金招聘Python工程师标准>>>
标题或者也可改成:表自己和自己left join.
背景:最近在拆库,但是发现有个表自己和自己left join,百撕不得骑姐啊。
本章主要讨论2个点:
1、表A和表B left join,最多多少行?
2、为啥表要自己和自己left join,可不可以只用表本身解决问题。
解决方案for1:
1、研究了下,有了新的发现:表A和表B left join时,假设表A有m行,表B有n行,那么A和B left join时,行数最多是多少?是m*n行,就是笛卡尔积本身的数量,举例如下:
这是原表记录,共9条,对它进行left join运算,SQL如下:
SELECT
*
FROMborrows_contact mdc1LEFT JOINborrows_contact mdc2 ON mdc1.user_id = mdc2.user_id
得出的结果是81条,如下图所示:
解决方案for2:
我们直接找一个可用的userId,然后分别不用left join和自己left join看2个结果,就可以得出结论:
1、不用left join,查出来的结果如下:
2、left join后的结果如下
通过比较发现,不用left join的话,只是把行列出来了,数据都是分散的,但是join的话,将行转列了,非常清晰明了,当然如果不用行转列,在程序中实现也可以
---------
最后要说明的是:如果表A有10行数据,表B有4行数据,那么A和B left join时,以A为主表,B中未匹配的6行数据将以null的形式出现,此时如果加上b.id is not null时,效果同A和B的inner join.
转载于:https://my.oschina.net/windows20/blog/1560610
行转列经典案例(left join)相关推荐
- 数仓工具—Hive实战之full join 经典案例(13)
full join 经典案例 full join 增量数据同步更新 我们知道我们的数仓数据很大一部分是来自业务数据库的,那么这个时候我们数据同步的方式有两种一种是增量同步一种是全量同步,那么这个时候我 ...
- 行转列和列转行,经典案例解析
一.行转列 1.建表 create table table01(sname varchar2(10), --姓名subject varchar2(10), --科目score int --分数 ); ...
- mysql 列转行union all_SQL查询案例:列行转换[列转行, 使用 UNION ALL 处理]
SQL查询案例:列行转换[列转行, 使用 UNION ALL 处理] 在行列转换的处理之后, 有时候会遇到,要列行装换的 CREATE TABLE TestColRow ( name VARCHA ...
- mysql 列转行union all_SQL查询案例:列行转换[列转行, 使用 UNION ALL 处理] | 学步园...
SQL查询案例:列行转换[列转行, 使用 UNION ALL 处理] 在行列转换的处理之后, 有时候会遇到,要列行装换的 CREATE TABLE TestColRow ( name VARCHA ...
- mysql行转列transform_MySQL学习之行列转换案例
前言 Oracle中的pivot/unpivot函数可以很方便的帮助我们实现行列转换,但是MySQL并不支持. 可以在SQL上想办法,比如pivot考虑用聚合函数+case when, unpiovt ...
- mysql i o 高_经典案例:磁盘I/O巨高排查全过程
原标题:经典案例:磁盘I/O巨高排查全过程 前言 是什么原因导致线上数据库服务器磁盘I/O的util和iowait持续飚高?1. 问题描述 朋友小明的线上数据库突发严重告警,业务方反馈写入数据一直堵住 ...
- SQL优化实战经典案例分析
前言 大家好,我是黎杜,今天和大家聊聊SQL优化的场景. SQL调优这块呢,大厂面试必问的.最近金九银十嘛,所以整理了SQL的调优思路,并且附几个经典案例分析. 1.慢SQL优化思路. 慢查询日志记录 ...
- SQL 经典回顾:JOIN 表连接操作不完全指南
也许最强大的SQL功能是JOIN操作.这让所有非关系数据库羡慕不已,因为当你想"合并"两个数据集时,这个概念是如此简单,并且又普遍适用. 简单地说,连接两个表,就是将一个表中的每一 ...
- TF学习:Tensorflow基础案例、经典案例集合——基于python编程代码的实现
TF学习:Tensorflow基础案例.经典案例集合--基于python编程代码的实现 目录 Tensorflow的使用入门 1.TF:使用Tensorflow输出一句话 2.TF实现加法 3.TF实 ...
最新文章
- ios 小数保留位数
- 计量经济学和机器学习方法的在假设上的区别
- 苹果13系统锁屏延迟_iPhone 11 锁屏出现延迟是怎么回事?
- sqoop数据导出导入命令
- 微博:第二批共处置10106个账号 十万粉丝到一百万粉丝的账号8个
- NET- SplitContainer控件说明
- cacti气象图调整(批量位置调整、更改生成图大小等)
- js !!条件判断或运算的作用
- java单元测试(@Test)
- 调和级数 java,再探π^2/6
- 中标麒麟Linux能运行wine吗,中标麒麟V6下wine完美运行通达信
- 自定义控件1_切换按钮
- 树莓派41/100- Pico控制触摸开关模块TTP223
- 『MongoDB』MongoDB的数据存储格式Bson比Json有哪些优势?
- 生活常用的塑料材质1到7
- 在windows中使用bat脚本获取linux服务器文件
- 2020-10-26可转债新规
- 项目成功和失败的几大因素
- 【学习笔记】GY-53L1x激光测距传感器模块入门资料
- Word,PDF,PPT,TXT之间的转换方法(好东西,以后整理课件就不会那么麻烦了。。。)...
热门文章
- 完整、详细的MySQL规范
- Linux系统修改远程连接22端口
- java 操作office_Java操作word的方法
- 【PostgreSQL-9.6.3】约束
- JQuery的Ajax跨域请求的解决方案
- 在使用pydelicious时出现HTTP Error 500: Internal Server Error的错误的解决方法:
- class path resource [logback.xml] cannot be resolved to URL because it does not exist 问题解决
- 春季:@Component与@Bean
- java线程属性_Java 并发 线程属性
- mysql意外关闭xampp_错误:MySQL意外关闭xampp 3.2.4