现需求:统计出每位用户的现金红包和积分红包的总数

参考网站地址(Oracle的写法应该):

OSCHINA(OSChina.NET)​m.oschina.net

由于MySQL没有 FULL JOIN ON 经过 baidu 搜索可以通过左连接+union+右连接实现全连接方案

代码实现如下:

先查出红包数据

SELECT 

再查积分数据

SELECT b.user_id,SUM(b.amount) as money_amount,0 as jf_amount
FROM hunuo_app_user_award as b
RIGHT JOIN hunuo_app_user_award as a ON a.id = b.id
WHERE b.award_type = 2
GROUP BY b.user_id

特别注意:查询字段要一一对应(坑爬了好长时间)

合并

SELECT c.user_id,c.money_amount,c.jf_amount FROM (
(SELECT a.user_id,0 as money_amount,SUM(a.amount) as jf_amountFROM hunuo_app_user_award as aLEFT JOIN hunuo_app_user_award as b ON a.id = b.id WHERE a.award_type = 1 GROUP BY a.user_id) UNION (SELECT b.user_id,SUM(b.amount) as money_amount,0 as jf_amountFROM hunuo_app_user_award as bRIGHT JOIN hunuo_app_user_award as a ON a.id = b.idWHERE b.award_type = 2 GROUP BY b.user_id)) as c
) 

统计最终结果:

SELECT d.user_id,sum(d.money_amount),sum(d.jf_amount) FROM (SELECT c.user_id,c.money_amount,c.jf_amount FROM ((SELECT a.user_id,0 as money_amount,SUM(a.amount) as jf_amountFROM hunuo_app_user_award as aLEFT JOIN hunuo_app_user_award as b ON a.id = b.id WHERE a.award_type = 1 GROUP BY a.user_id) UNION (SELECT b.user_id,SUM(b.amount) as money_amount,0 as jf_amountFROM hunuo_app_user_award as bRIGHT JOIN hunuo_app_user_award as a ON a.id = b.idWHERE b.award_type = 2 GROUP BY b.user_id)) as c
) as d
GROUP BY d.user_id

备注:新增自定义不是表的字段方法 select *, 0 as field1 from table1

特别注意:合并保留不同字段的时候字段的顺序要保持一致

mysql 全连接_mysql 实现全连接相关推荐

  1. mysql的内外连接_MYSQL的内外连接

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和 ...

  2. mysql 本地连接_mysql开启远程连接及本地连接

    问题描述 在本机windows上连接linux服务器上的mysql报错:host'XXX' is not allowed to connect to this mysql server. 这个错误是由 ...

  3. mysql 什么时候用内连接_mysql显示内连接和隐式内连接的区别,什么时候非要用到显示内连接。...

    显式内连接就是使用inner join的办法,写起来复杂些 以windows版本mysql里自带的sakila数据库为例 显式内连接语法 select 字段名 from 表1 join 表2 on 连 ...

  4. mysql的左右连接_MySQL之左连接与右连接

    左连接: select 列1,列2,列N from tableA left join tableB on tableA.列 = tableB.列(正常是一个外键列) [此处表连接成一张大表,完全当成一 ...

  5. mysql全关联_MySQL实现全关联 full outer join

    SQL LEFT JOIN 关键字 LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行. LEFT JOIN 关键 ...

  6. mysql刷新连接_MYSQL频繁出现连接失败,刷新后正常的解决办法

    服务器出现MYSQL频繁掉线,提示连接失败,刷新后又正常的问题.刚开始还以为是mysql连接数的问题,改了无数次,还是一样没解决问题.后来终于找到什么原因了!微软9月9日发布了TCP/IP更新补丁(K ...

  7. mysql提示太多连接_mysql数据库提示连接太多怎么办

    mysql数据库提示连接太多的解决方法:1.登录mysql数据库,查看当前活动的连接线程变量值:2.编辑my.cnf配置文件,添加[[mysqld] port=3306]:3.重启mysql服务器. ...

  8. php与mysql实例教程_mysql实例与连接

    1.一个mysql实例(进程)可以创建多个连接(线程)吗? 2.这里连接的概念有分物理上的连接和逻辑上的连接吗?它们和mysql实例是什么关系,是否一一对应关系? 3.php里的mysql_conne ...

  9. mysql常用四种连接_MySQL四种连接查询

    内连接 交集 inner join 或者 join select * from person join card on person.cardId = card.id; +------+------- ...

  10. mysql command为sleep时项目可以连接_mysql数据库常连接造成大量sleep状态怎么办

    设置max_execution_time 来阻止太长的读SQL.那可能存在的问题是会把所有长SQL都给KILL 掉.有些必须要执行很长时间的也会被误杀. 自己写个脚本检测这类语句,比如order by ...

最新文章

  1. [转]FPGA的GTP信号PCB布线要点
  2. CentOS系统如何搭建离线yum源
  3. inline-block什么意思中文_css中inline-block是什么?inline-block布局的使用
  4. Android4.0 修改系统屏幕分辨率方法
  5. 【大学到研究生自学Java的学习路线】这是一份最适合普通大众、非科班的路线,帮你快速找到一份满意的工作
  6. 直播 | ICLR 2021论文解读:兼听则明,信而有征:可信多模态分类
  7. 一次简单的服务器 cpu 占用率高的快速排查实战
  8. Android SDK实例之Snake游戏深入解析(一)
  9. python爬虫之---------------cookie和session
  10. 使用EntityFramework Core和Enums作为字符串的ASP.NET Core Razor页面——第二部分
  11. Flask - 基础
  12. mysql金额数据类型,热度飙升!
  13. C6748和音频ADC连接时候的TDM以及I2S格式问题
  14. (十四)洞悉linux下的Netfilteriptables:开发一个match模块【实战】
  15. unity 接入移动MM (3.1.10)
  16. 心知天气api PHP,php调用心知天气API,实现微信自动回复
  17. 换计算机硬盘分区,笔记本提速,换硬盘,分区,系统迁移,装机!
  18. PPPOE总结和配置
  19. yolov5训练自己的数据集,OpenCV DNN推理
  20. c语言程序由什么开头和结尾,一个完整的C程序由什么组成?

热门文章

  1. 关于开源软件的十个问题(下篇)
  2. 【图像去噪】基于matlab GUI中值+小波+维纳+滤波器图像去噪【含Matlab源码 616期】
  3. 【物理应用】基于matlab车载自组织网络中路边性能及防碰撞算法研究【含Matlab源码 263期】
  4. java小数正负数据类型_Java - day001 - 8种基本数据类型
  5. canvas贝塞尔曲线爱心_HTML5 Canvas 绘制贝塞尔曲线 Bezier and quadratic curves
  6. 人工智能和机器学习的前五门课程
  7. 深度学习行人检测简介_深度学习简介
  8. torch.optim.lr_scheduler.MultiStepLR()用法研究 台阶/阶梯学习率
  9. 谷粒商城doc文档_谷粒学院项目分享全栈开发入门必备(资料齐全)
  10. db2和oracle数据同步,DB2与Oracle数据库之间的远程复制(转)