我有一个用PHP和MySQL编写的Web应用程序。
一个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
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;
我假设这个改变会给我这个结果:
但输出是:
似乎GROUP BY更改了ORDER BY排序顺序。我希望有更新的date_time
的记录,但在这个改变后,我有更老的date_time
记录!
我怎么解决这个问题?我的错是什么?
我修改了你的代码并为我工作。
我将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;