【mysql】mysql按时间查询没有某些时间导致数据缺失的解决方法

在做图表的时候,会有需要连续时间的记录的需求.但是假如按照时间查询的时候,某一个时间点的并没有产生数据,导致数据的缺失,按照平时的关联查询,会导致中间的数据出现丢失.本来一个月30天的数据,可能就只有十几天的数据.因此,请教了公司的前辈得到了一个解决方法

代码

SELECT b.name,b.dt
FROM (
    SELECT * 
    FROM (
        SELECT '2017-05-01' AS dt UNION SELECT '2017-05-02'
        UNION SELECT '2017-05-03' ... UNION SELECT '2017-05-30' 
    ) d CROSS JOIN bas_name bn
) b

中间的时间可以通过StringBuffer连接在一起,这样就可以把完整的时间补完整

sql语句中的

CROSS JOIN 

的意思是笛卡尔积集,就是所有字段全部关联的处理,详情可以百度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值