【问题标题】:About GROUP BY with ORDER BY关于 GROUP BY 和 ORDER BY
【发布时间】:2012-11-30 13:59:51
【问题描述】:

我对 group by 的查询顺序有疑问。

我有一个表 download_category 和下载。下载表有一个名为“thumb”的列(它是一个图像 - varchar)。我想获取类别名称和最后插入的拇指。

我正在这样做:

    SELECT download_category.id
             , download_category.link
             , download.thumb
      FROM download  

RIGHT JOIN download_category ON (download_category.id = download.idCategoria )   
     WHERE download_category.link IN ('link-of-category') 

GROUP BY download_category.id
       , download_category.link
ORDER BY download.id DESC 

RIGHT JOIN 是必要的,以防不存在下载。

问题是:拇指列返回第一个插入的记录,而不是最后一个“download.id DESC”。我做错了什么?

【问题讨论】:

    标签: group-by sql-order-by


    【解决方案1】:

    试试这个:

    SELECT download_category.id
             , download_category.link
             , download.thumb
    from download_category 
    left join (select max(id) maxId,
                      idCategoria 
               from download 
               group by idCategoria) t
          ON (download_category.id = t.idCategoria ) 
    left join download 
          ON t.maxid=download.id
    
     WHERE download_category.link IN ('link-of-category') 
    
     GROUP BY download_category.id
            , download_category.link
     order by t.maxid DESC;
    

    【讨论】:

      猜你喜欢
      • 2011-06-28
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 2020-03-09
      相关资源
      最近更新 更多