将列中的最后一个条目选为其他列中的唯一条目

KJS*_*KJS 5 php mysql

试图从下表中获取最后一条唯一记录.有一些双打,那些应该被过滤掉.

id  topic   action  date
1   10127   2   2015-09-24 15:28:30
2   10127   4   2015-09-24 15:29:26
3   10127   2   2015-09-24 15:30:01
4   10127   3   2015-09-24 15:30:55
5   10127   1   2015-09-24 16:07:25
6   10127   5   2015-09-24 16:10:25
7   10127   4   2015-09-24 16:29:26
Run Code Online (Sandbox Code Playgroud)

使用此查询(在此处找到)是我最好的努力,但只返回一个结果.

SELECT MAX(action) as action,topic,date FROM ...... 
GROUP by topic 
ORDER by action DESC
Run Code Online (Sandbox Code Playgroud)

想要将此列表作为最新条目获取并在"主题"的"操作"上唯一:

id  topic   action  date
3   10127   1   2015-09-24 15:30:01
4   10127   2   2015-09-24 15:30:55
5   10127   3   2015-09-24 16:07:25
6   10127   4   2015-09-24 16:10:25
7   10127   5   2015-09-24 16:29:26
Run Code Online (Sandbox Code Playgroud)

希望有人有解决方案!谢谢!

Gab*_*uez 4

您可以使用子查询来完成。这是完整的 sqlfiddle:http://sqlfiddle.com/#!9/f7afa /23

Select * FROM (

SELECT
  DISTINCT  `topic`, `action`, `date`
FROM
  ForgeRock      
ORDER by date DESC, action ASC

  ) as X
  GROUP BY action
Run Code Online (Sandbox Code Playgroud)