【发布时间】:2017-03-15 18:40:44
【问题描述】:
我有一张叫“lift”的桌子:
-----------------------------------------------------
| ID | USERNAME | lift_ID | DATE |
-----------------------------------------------------
| 1 | user1 | 0 | 2013-06-01 |
-----------------------------------------------------
| 2 | user1 | 0 | 2013-06-03 |
-----------------------------------------------------
| 3 | user1 | 1 | 2013-06-03 |
-----------------------------------------------------
| 4 | user2 | 0 | 2013-06-04 |
-----------------------------------------------------
| 5 | user2 | 1 | 2013-06-04 |
-----------------------------------------------------
| 6 | user2 | 1 | 2013-06-05 |
-----------------------------------------------------
| 7 | user1 | 2 | 2013-06-03 |
我想从某个用户中选择所有不同的lift_id,其中日期是该用户的lift_id 中的最新日期。
如果我为 user1 这样做,我会得到:
-----------------------------------------------------
| 2 | user1 | 0 | 2013-06-03 |
-----------------------------------------------------
| 3 | user1 | 1 | 2013-06-03 |
-----------------------------------------------------
| 7 | user1 | 2 | 2013-06-03 |
我试过了:
SELECT *
FROM lift l1
WHERE date` = (
SELECT MAX(date)
FROM lift
WHERE l1.lift_id = lift.lift_id)
AND username = 'user1'
ORDER BY lift_id ASC
)
;
该选择在最大日期所有不同的提升,但没有考虑到我想要的不同用户。
【问题讨论】: