mysql 日期没有了_mysql – 显示所有日期,即使没有结果

您可以使用MySQL变量构建一个自动化的结果集,用于所有日期.

select

AllDaysYouWant.MyJoinDate,

count( U.User_ID ) as NumberJoined

from

( select

@curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate

from

( select @curDate := '2012-11-21' ) sqlvars,

Users

limit 18 ) AllDaysYouWant

LEFT JOIN Users U

on AllDaysYouWant.MyJoinDate = U.User_JoinDate

group by

AllDaysYouWant.MyJoinDate

内部查询,我只是加入用户表,没有键,所以它只是用来循环X数量的记录来代表你想要的日期…这可以是30,100,无论….只是只要桌子(在这种情况下为用户),就像您所期望的那样,记录的数量一样多.

那么,除了日子之外的结果加入了用户表,但这次是基于用户的JOIN_DATE.简单的COUNT()应该让你想要的.

“AllDaysYouWant”是分配给内部第一部分查询的别名

( select

@curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate

from

( select @curDate := '2012-11-21' ) sqlvars,

Users

limit 18 ) AllDaysYouWant

这主要表示…从用户表(但可以是任何),给我18行数据(通过限制,但可以几乎任何数量的记录,但你只需要从11月22日到12月6日,这只是14天,但是我做了18只是为了原则,几乎可以是任何东西.在Users表的上面是(select @curdate:=’2012-11-21′)sqlvars.在查询中的任何select语句,以括号括起来表源必须有一个别名,因为它只是一个变量,我将使用,不用担心它的名字.所以,这个查询在11月21日启动变量,并选择@curdate:= Date_Add … blah blah表示要采用@curdate的当前值,添加1天(现在成为11月22日),并将其存储在返回的行“MyJoinDate”中,所以现在,这个内部查询创建了从11月22日开始的日期表前进18天的数据,并有别名“AllDaysYouWant”为其余的查询参考.

我调整了可能是你遇到的查询,alias.field所有的澄清…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值