我知道这已经被要求回答一次。但是我似乎无法解决这个问题。
我正在尝试按此查询进行分组和排序,以便可以将它作为子查询加入到更大的查询中
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
我尝试按顺序对标准分组进行排序,但是mysql似乎先对分组进行分组并给出随机列
我尝试过此操作,但它始终显示随机日期。
Select* from (
Select *
from ggorderlog as b
where GGTITLE like '%Reklamation%'
ORDER BY b.GGDATE DESC
) b2
group by b2.GGORDERID
我尝试了很多其他的建议,方法为left selfe或group_concat,然后再次解决,但似乎无济于事。
答案 0 :(得分:0)
你可以试试吗?
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