怎么在mysql中实现多表关联统计
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,本篇文章为大家展示了怎么在mysql中实现多表关联统计,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。需求:统计每本书打赏金额,不同时间的充值数据统计,消费统计
千家信息网最后更新 2025年11月11日怎么在mysql中实现多表关联统计
本篇文章为大家展示了怎么在mysql中实现多表关联统计,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
需求:
统计每本书打赏金额,不同时间的充值数据统计,消费统计,
设计四个表,book 书本表,orders 订单表 reward_log打赏表 consume_log 消费表 ,通过book_id与book表关联,
问题:
当关联超过两张表时导致统计时数据重复,只好用子查询查出来,子查询只能查一个字段,这里用CONCAT_WS函数将多个字段其拼接
实现:
查询代码如下
SELECTb.id,b.book_name,sum( IF ( o.create_time > 0 && o.create_time < 9999999999, o.price, 0 ) ) today_pay_money,sum( IF ( o.create_time > 0 && o.create_time < 9999999999, 1, 0 ) ) today_pay_num,sum( IF ( o.create_time > 999 && o.create_time < 9999, o.price, 0 ) ) yesterday_pay_money,sum( IF ( o.create_time > 999 && o.create_time < 9999, 1, 0 ) ) yesterday_pay_num,sum(o.price) total_pay_money,sum( IF ( o.create_time > 9999 && o.create_time < 99999, 1, 0 ) ) total_pay_num,( SELECT SUM( total_score ) FROM book_reward_log WHERE book_id = b.id ) total_score,( SELECT CONCAT_WS( ',', SUM( IF ( create_time > 0 && create_time < 998, score, 0 ) ), SUM( IF ( create_time > 9999 && create_time < 99998, score, 0 ) ), SUM( IF ( create_time > 99999 && create_time < 999998, score, 0 ) ) ) FROM book_consume_log WHERE book_id = b.id ) score FROM book_book b LEFT JOIN book_orders o ON b.id = o.bidGROUP BY b.id
查询结果

score 为三个消费数,以逗号隔开
性能分析
上述内容就是怎么在mysql中实现多表关联统计,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
统计
关联
查询
消费
中实
内容
字段
技能
数据
知识
不同
简明
简明扼要
三个
书本
代码
函数
多个
就是
性能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
襄城县网络安全周
电脑版2b2t服务器号是多少
大学生网络安全预防重要性
华为流媒体管理服务器型号
石狮矢眯网络技术有限公司
国内都有哪些软件开发公司
云服务器过期如何删除硬盘
昌平区智能网络技术价格行情
数学系搞软件开发
计算机网络技术专业跟应用
台州雷豹网络技术
百度做软件开发吗
服务器管理员的权限
网络安全发言稿100字
还原oracle数据库
联通积极参与网络安全宣传周活动
软件开发公司上什么erp
皇族网络技术的群号
静安区营销软件开发销售
租服务器怎么建网页
空间是服务器吗
软件开发过程存在的风险
5G网络技术哪些品牌有
魔兽世界服务器推荐
农业管理软件开发
计算机网络技术基础 段标
北京游戏软件开发招聘信息
大专计算机网络技术难吗
连上数据库没有表
sql数据库中查询列