我知道这个问题已经被问了一千次了。但我似乎无法解决这个问题。
我正在尝试按分组并订购此查询,以便将其作为子查询加入到更大的查询中
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