最新下载
热门教程
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 
mysql如何实现多表关联统计 mysql实现多表关联统计方法
时间:2022-06-29 09:04:08 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下mysql实现多表关联统计方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
需求:
统计每本书打赏金额,不同时间的充值数据统计,消费统计,
设计四个表,book 书本表,orders 订单表 reward_log打赏表consume_log 消费表 ,通过book_id与book表关联,
问题:
当关联超过两张表时导致统计时数据重复,只好用子查询查出来,子查询只能查一个字段,这里用CONCAT_WS函数将多个字段其拼接
实现:
查询代码如下
SELECT b.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.bid GROUP BY b.id
查询结果
score 为三个消费数,以逗号隔开
性能分析
相关文章
- 洛克王国世界初始精灵哪个好-精灵御三家选择推荐 11-04
 - 逃离鸭科夫农场镇专家快递员1任务怎么做 专家快递员1任务流程 11-04
 - 逃离鸭科夫四骑士打法攻略 四骑士打法攻略(二) 11-04
 - 逃离鸭科夫农场镇晋升专家快递员怎么做 晋升专家快递员任务流程 11-04
 - 逃离鸭科夫农场镇进阶实力证明2怎么做 实力证明2任务流程 11-04
 - 逃离鸭科夫农场镇清理校园任务怎么完成 清理校园任务流程 11-04
 
            
                                
                                
                                
                                
                                            
                                        
                                            
                                        
                                            
                                        
                                            
                                        
                                            
                                        
                                            
                                        
                                            
                                        
                                            
                                        
                                            
                                        
                                            
                                        

