现有一个统计表,格式如下
日期                 个数
2009-10-01            123
2009-10-03            523我想得到如下结果
2009-10-01            123
2009-10-02            0
2009-10-03            523
这样的sql文怎么写 

解决方案 »

  1.   

    这样的话,必须对日期列构造所有记录,然后进行左连接:select t1.dt,ifnull(t2.个数,0) as 个数 from 
    (
    select '2009-10-01' as dt
    union all
    select '2009-10-02'
    union all
    select '2009-10-03'
    ) t1
    left join 
    统计表 t2
    on t1.dt=t2.日期
    order by t1.dt
      

  2.   

    select 
      a.日期,
      sum(Ifnull(b.个数,0)) as 个数
    from
    (
     select 
       date_add('2009-10-01',interval help_topic_id day) as 日期
     from 
       mysql.help_topic 
     where 
       date_add('2009-10-01',interval help_topic_id day)<='2009-10-03'
    ) a
    left join
      统计表 b
    on
      a.日期=b.日期
    group by
      a.日期