GROUP BY changesChanges ORDER BY排序

问题描述 投票:2回答:1

我有一个用PHP和MySQL编写的Web应用程序。

一个SQL命令(如下所述)的结果是这样的:

enter image description here

SELECT
   t.subject, c.parent_id, c.date_time 
FROM
   tbl_tickets_contents c
JOIN
   tbl_tickets t
ON
   t.id = c.parent_id
ORDER BY
   c.date_time DESC;

我想删除重复的项目。所以我将SQL脚本更改为:

SELECT
   t.subject, c.parent_id, c.date_time 
FROM
   tbl_tickets_contents c
JOIN
   tbl_tickets t
ON
   t.id = c.parent_id
GROUP BY
   c.parent_id
ORDER BY
   c.date_time DESC;  

我假设这个改变会给我这个结果:

enter image description here

但输出是:

enter image description here

似乎GROUP BY更改了ORDER BY排序顺序。我希望有更新的date_time的记录,但在这个改变后,我有更老的date_time记录!

我怎么解决这个问题?我的错是什么?

mysql group-by sql-order-by
1个回答
0
投票

我修改了你的代码并为我工作。

我将c.date_time更改为MAX(c.date_time) as date_time,以便获得最新的约会时间。

并通过c.date_time改变秩序到date_time

SELECT
   t.subject, 
   c.parent_id, 
   MAX(c.date_time) as date_time 
FROM
   tbl_tickets_contents c
JOIN
   tbl_tickets t
ON
   t.id = c.parent_id
GROUP BY
   c.parent_id
ORDER BY
   date_time DESC;

SQL Fiddle Example

© www.soinside.com 2019 - 2024. All rights reserved.