GROUP BY id显示相同id的最新条目

  • 本文关键字:id 最新 BY 显示 GROUP mysql
  • 更新时间 :
  • 英文 :


我知道这个问题已经被问了一千次了。但我似乎无法解决这个问题。

我正在尝试按分组并订购此查询,以便将其作为子查询加入到更大的查询中

SELECT * FROM `ggorderlog` 
WHERE `GGTITLE` LIKE '%Reklamation%' 
ORDER BY `GGDATE` DESC, `ggorderlog`.`GGORDERID` DESC 

这是ggorderlog表和上方查询的结果

GGTITLE     GGOXID    GGDATE             GGORDERID GGTITLE               User
Reklamation uniqueid1 2018.12.7 16:20:00 1         Reklamation created   Max Mustermann
Reklamation uniqueid2 2018.12.7 16:24:00 1         Reklamation finished  Maxine Musterfrau
Reklamation uniqueid3 2018.12.7 16:22:00 2         Reklamation created   Max mustermann

现在我想要的是显示这个表,这样对于每个GGORDERID,我只能看到最新的条目。为了概述参与此项工作的用户以及票证的状态。

像这样:

GGTITLE     GGOXID    GGDATE             GGORDERID GGTITLE               User
Reklamation uniqueid2 2018.12.7 16:24:00 1         Reklamation finished  Maxine Musterfrau
Reklamation uniqueid3 2018.12.7 16:22:00 2         Reklamation created   Max mustermann

我尝试了用order by进行标准分组,但mysql似乎首先进行分组,并给出了一个随机列

我试过了,但它总是显示一个随机的日期。

Select* from (
Select *
from ggorderlog as b 
where GGTITLE like '%Reklamation%' 
ORDER BY b.GGDATE DESC
) b2
group by b2.GGORDERID 

我尝试了很多其他的建议,离开它自己或小组,然后再次解散,但似乎都不起作用。

你能试试这个吗?

SELECT gg.*
FROM ggorderlog gg
INNER JOIN
(SELECT ggorderid, MAX(ggdate) AS maxggdate,oxid
FROM ggorderlog
GROUP BY ggorderid) groupedgg 
ON gg.oxid = groupedgg.oxid
AND gg.ggdate = groupedgg.maxggdate

最新更新