为什么我的 MySQL 查询没有正确排序?

Why is my MySQL query not ordering correctly?

在下面的查询中,我试图按 fc.order 升序排列结果:

SELECT *, count(*) AS threads_count FROM (
    SELECT fc.uuid AS category_uuid, fc.name, fc.description, fc.order, fc.icon,
           u.uuid AS user_uuid, u.username, u.avatar
    FROM forum_categories AS fc
    INNER JOIN forum_threads AS ft ON fc.id = ft.forum_category_id
    INNER JOIN users as u ON ft.created_by = u.id
    ORDER BY fc.order ASC, ft.created_at DESC
) AS tmp_table GROUP BY category_uuid

但是它似乎不起作用。以下是上述查询结果的屏幕截图:

如何获得按 order 列排序的结果?

SELECT t1.*, count(t1.*) AS threads_count FROM 
 (
        SELECT fc.uuid AS category_uuid, fc.name, fc.description, fc.order, fc.icon,
               u.uuid AS user_uuid, u.username, u.avatar
        FROM forum_categories AS fc
        INNER JOIN forum_threads AS ft ON fc.id = ft.forum_category_id
        INNER JOIN users as u ON ft.created_by = u.id    
 ) AS tmp_table t1 
GROUP BY category_uuid
ORDER BY t1.order ASC, t1.created_at DESC

好的,谢谢大家,但我明白了:

SELECT * FROM (
    SELECT *, count(*) AS threads_count FROM (
        SELECT fc.uuid AS category_uuid, fc.name, fc.description, fc.order, fc.icon,
               u.uuid AS user_uuid, u.username, u.avatar
        FROM forum_categories AS fc
        INNER JOIN forum_threads AS ft ON fc.id = ft.forum_category_id
        INNER JOIN users as u ON ft.created_by = u.id
        ORDER BY ft.created_at DESC
    ) AS t1 GROUP BY category_uuid
) as t2 ORDER BY `order`