我在mysql中有一个表,其中需要显示按Uid
分组的列CreatedDate
,Action_key
和Value
和action key
。 >
表: UsersOptStatus
预期结果:
我需要按desc CreatedDate排序并显示最新的Action_keys
下面是我尝试过的-这给了我所有的Action_key,但是我需要根据上次创建的日期(即Desc)显示最新的Action_key:
SELECT uid,
action_key,
value,
Max(createddate) CreatedDate
FROM usersoptstatus
WHERE uid = 1607
GROUP BY action_key,
value;
即使以下查询没有给我 Expected Result
,
SELECT uid,
value,
action_key
FROM (SELECT uid,
Max(createddate) CreatedDate
FROM usersoptstatus
GROUP BY uid) A
INNER JOIN usersoptstatus USING (uid, createddate)
WHERE uid = 1607
ORDER BY id DESC;
答案 0 :(得分:2)
在“派生”表中,您正在Group By
上进行uid
。相反,您需要在Group By
上action_key
才能获得每个createddate
的{{1}}的最大值。
现在,您可以将此结果集连接到action_key
和action_key
上的主表中。
此外,我更喜欢基于createddate
的基于子句的联接,而不是ON
或基于老式逗号的隐式联接。
Using