2

groupbyを使用したクエリの順序に問題があります。

私はテーブル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 

ダウンロードが存在しない場合は、RIGHTJOINが必要です。

問題は、サム列が最後の「download.idDESC」ではなく最初に挿入されたレコードを返すことです。私は何が間違っているのですか?

4

1 に答える 1

0

これを試して:

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;
于 2012-11-30T14:49:02.370 に答える