Php mySQL-加入日期范围
嗨,我希望你能帮我解决这个问题: 我有这些桌子:Php mySQL-加入日期范围,php,mysql,join,Php,Mysql,Join,嗨,我希望你能帮我解决这个问题: 我有这些桌子: Games id name 1 Game1 2 Game2 3 Game3 Plays game_id user_id numbers date 1 1 2,12,34,56 2015-06-30 13:15:00 2 1 5,10,22,41
Games
id name
1 Game1
2 Game2
3 Game3
Plays
game_id user_id numbers date
1 1 2,12,34,56 2015-06-30 13:15:00
2 1 5,10,22,41 2015-06-30 13:15:00
3 1 1,7,11,34 2015-06-30 13:15:00
1 2 4,17,29,32 2015-06-30 13:15:00
1 1 2,9,19,45 2015-06-31 13:15:00
2 1 5,16,26,31 2015-06-31 13:15:00
3 1 4,12,16,34 2015-06-31 13:15:00
1 1 3,15,27,43 2015-06-01 13:15:00
1 1 1,7,14,29 2015-06-02 13:15:00
2 1 7,23,31,48 2015-06-02 13:15:00
我需要获得从今天到过去10天的所有用户_id=1播放,但是如果用户在一个日期内没有播放,则无论如何都应返回该日期。
结果应该是这样的:
game_id user_id numbers date
1 1 null 2015-06-26 00:00:00
2 1 null 2015-06-26 00:00:00
3 1 null 2015-06-26 00:00:00
same for days 27-28-29
1 1 2,12,34,56 2015-06-30 13:15:00
2 1 5,10,22,41 2015-06-30 13:15:00
3 1 1,7,11,34 2015-06-30 13:15:00
and so on
这是我现在使用的查询,但它只返回实际存在的日期:
SELECT g.id, gam.name, g.played_numbers, g.date FROM plays AS g RIGHT JOIN games AS gam ON g.game_id = gam.id AND g.user_id = 1 AND g.date BETWEEN '2015-05-04 15:00:00' AND '2015-06-03 15:00:00'
提前谢谢 在PHP代码中填写缺少的天数可能更容易。或者你可以做10个
选择带有10个日期的s,然后用UNION
s将它们粘在一起。也许其他人有更好的主意。谢谢@TomasoAlbinoni,我会按照你的建议填写日期,直到我想出另一个主意。再次感谢!