1
我有一個「用戶」表字段UserId和addedDate。MySql查詢:如何從給定日期值中選擇最近90天內不存在的數據?
我需要得到用戶的數據 - 在上個月和本月加入,而不是在系統前90天添加日期。
用戶表
Userid addedDate enddate
001 2017-07-01 2017-09-05
002 2017-02-25 2017-02-01
003 2017-06-01 2017-09-21
003 2017-04-25 2017-05-29
004 2017-06-01 2017-09-21
005 2017-06-05 2017-09-07
005 2017-01-01 2017-01-31
我需要輸出像:
userid
001
004
005
這裏003不需要爲它不是一個新用戶(作爲其可用的系統對於前90天加入日期)。並且002不會添加在最近的飛蛾或當前飛蛾中,所以這也不能被視爲新用戶。
我曾嘗試下面的查詢,但它不是做工精細:
select userid from usertbl final
WHERE final.userid NOT IN (
SELECT meb.userid
FROM usertbl meb
INNER JOIN
(
SELECT mc.userid, addeddate, enddate
FROM usertbl mc
WHERE mc.enddate > NOW()
AND mc.addeddate > DATE_ADD(NOW(), INTERVAL -90 DAY)
) s
ON s.userid = meb.userid
AND
(
meb.enddate > DATE_ADD(s.addeddate,INTERVAL -90 DAY)
AND meb.enddate <> s.enddate
)
)
請提供一些建議。
順便說一句,這是題外話。 – tilz0R
@ tilz0R它爲什麼要這樣?我看到示例數據,期望的結果,甚至解釋以及OP已經嘗試的查詢。其實這是一個SQL問題應該如何。 – fancyPants