'NOT GREATER THAN'条件Mysql

Aks*_*oel 3 mysql sql

我有一列MySQL表useridcreatedon其中createdon列有DATE数据类型.

---------------------------------------------------------------------------------
ID                      UserId                         CreatedOn
1                         65                           2013-06-13 
2                         54                           2013-07-03
3                         34                           2013-08-23
4                         65                           2013-09-13 
5                         89                           2013-09-13
Run Code Online (Sandbox Code Playgroud)

现在我想要最后创建的用户标识在2013-09-08之前.正确的答案是用户ID 54,34

运用

select userid from table  where createdon <'2013-09-08'
Run Code Online (Sandbox Code Playgroud)

返回65,54,34和usind

select userid from table where userid notin (select userid from table where createdon > '2013-09-07')
Run Code Online (Sandbox Code Playgroud)

花了很多时间.

如何获取最后创建的行<2013-09-08

pet*_*erm 7

尝试

SELECT UserID, MAX(CreatedOn) CreatedOn
  FROM table1
 GROUP BY UserId
HAVING CreatedOn < '2013-09-08'
Run Code Online (Sandbox Code Playgroud)

输出:

| USERID |                     CREATEDON |
|--------|-------------------------------|
|     34 | August, 23 2013 00:00:00+0000 |
|     54 |   July, 03 2013 00:00:00+0000 |

这是SQLFiddle演示