作者jimpop (popmij)
看板Database
标题[SQL ] 连续时间范围查询
时间Mon Dec 14 19:23:46 2015
(针对
SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
资料库名称: MySQL
资料库版本: 5.6
内容/问题描述:
这是我朋友问我的一个问题,本来以为不会很难...
结果还真的无法用一个SELECT做出条件XD
假设一家餐厅有会员制,每次来的会员都会记录在资料库内。
要如何找出连续三个月(假设90天)都有来的会员
EX: 捞取范围 2015/01/01 - 2015/12/14
他的意思是
A会员 上次来的时间是 2015/08/01
(以今日来说已经超过90天了)
上两次来的时间是 2015/07/15
(虽然前一次没超过90天,但上次来的时间已经超过,不符合。)
B会员 上次来的时间是 2015/10/01
(以今日来说有在90天内,符合条件!)
上两次来的时间是 2015/07/15
(以2015/10/01来说在90天内,符合条件!)
上三次来的时间是 2015/05/15
(以2015/10/01来说在90天内,符合条件!)
......
直到距离2015/01/01皆有90天者,符合条件!
本来我想要借助第二语言(PHP、JSP...等)
这样子就很好达成结果。
但我也好奇这样是否有办法让SQL条件式一次得到结果XD
感谢各位大大XD
`account`
------------
`id` - primary id
`name` - varchar
`check`
------------
`id` - primary id
`check_time` - int(10) unsigned [UNIX Time]
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.254.121.44
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1450092229.A.AE7.html
1F:→ konkonchou: 同表自串找两两<=90, 同Accoun不同日期, 纪录大小日期 12/15 00:06
2F:→ konkonchou: 串出来的结果, 再将此结果 inner join ID,日期两次 12/15 00:07
3F:→ konkonchou: 有资料存在就是连三次来访的资料 12/15 00:07
4F:推 amber01: 请问要怎麽做同表自串,最近也有类似的问题 12/17 09:47
5F:→ amber01: 谢谢你 12/17 09:47