这是我的桌面结构 -
TABLE : COURSE_LOG
-----------------------------------------------------
| ID | USERNAME | COURSE_ID | LDATE |
-----------------------------------------------------
| 1 | user1 | 22 | 2013-06-01 |
-----------------------------------------------------
| 2 | user1 | 54 | 2013-06-03 |
-----------------------------------------------------
| 3 | user1 | 22 | 2013-06-03 |
-----------------------------------------------------
| 4 | user2 | 71 | 2013-06-04 |
-----------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我想选择所有user1的COURSE_ID数据明显(连同它的日期).由于日期将在两个相同的COURSE_ID条目之间变化,我想选择具有更近期日期的行.我希望得到这样的结果 -
-----------------------------
| COURSE_ID | LDATE |
-----------------------------
| 54 | 2013-06-03 |
-----------------------------
| 22 | 2013-06-03 |
-----------------------------
| 71 | 2013-06-04 |
-----------------------------
Run Code Online (Sandbox Code Playgroud)
我不想要这个 -
-----------------------------
| 22 | 2013-06-01 | // THIS SHOULD BE OMITTED FROM RESULT BECAUSE THERE
----------------------------- // IS ANOTHER RECENT ENTRY WITH THE SAME COURSE_ID
Run Code Online (Sandbox Code Playgroud)
我正在使用此查询 -
SELECT DISTINCT(COURSE_ID), LDATE FROM COURSE_LOG
WHERE USERNAME = 'user1'
AND LDATE = (
SELECT LDATE
FROM COURSE_LOG
WHERE USERNAME = 'user1'
ORDER BY LDATE DESC
LIMIT 1
)
Run Code Online (Sandbox Code Playgroud)
但它只选择了一排.我该如何纠正?
Meh*_*zad 17
试试这个查询
如果您只想user1使用此查询:
select username, course_id, max(ldate) as date
from tbl
where username='user1'
group by course_id
Run Code Online (Sandbox Code Playgroud)
| USERNAME | COURSE_ID | DATE |
-------------------------------------
| user1 | 22 | 2013-06-03 |
| user1 | 54 | 2013-06-03 |
Run Code Online (Sandbox Code Playgroud)
如果要查找所有用户的最新日期,请使用此查询
select username, course_id, max(ldate) as date
from tbl
group by username, course_id
Run Code Online (Sandbox Code Playgroud)
在此查询数据中user2也将包括在内
| USERNAME | COURSE_ID | DATE |
-------------------------------------
| user1 | 22 | 2013-06-03 |
| user1 | 54 | 2013-06-03 |
| user2 | 71 | 2013-06-04 |
Run Code Online (Sandbox Code Playgroud)