我使用以下内容选择用户添加的最后一个事件
SELECT MAX(user_event_id) from user_events where user_id = 63
在这一行上还有一列event_title
但如果我尝试:
SELECT MAX(user_event_id), event_title from user_events where user_id = 63
返回的event_title与user_event_id
不对应是否可以返回最后一个user_event_id和event_title?
答案 0 :(得分:4)
此解决方案不需要ORDER BY,如果表很长,它将运行缓慢。
SELECT user_event_id, event_title
FROM user_events
WHERE user_event_id = (SELECT MAX(user_event_id)
FROM user_events
WHERE user_id = 63)
AND user_id = 63 -- This clause not needed if user_event_id is unique
答案 1 :(得分:2)
SELECT user_event_id, event_title
from user_events
where user_id = 63
order by user_event_id desc
limit 1
大多数DBMS不允许将 event_title 包含在字段列表中(如作者所做),因为它不用于分组而不是聚合函数。但是mysql确实会产生意想不到的结果。
<强>更新强>: 如果有多个记录具有相同的用户min_user_event_id,则此查询仅返回一条记录。所以它解决了与Barry Brown的解决方案略有不同的问题 - 它以相同的user_event_id返回所有记录。