1

cars というテーブルから 3 行を返したいのですが、各車には個別の deal_id が必要で、ID desc で並べ替えます (データベースに追加された最新の 3 台の車が返されるようにします)。

SELECT id,dealer_id,name,model_year 
FROM cars 
GROUP by dealer_id 
ORDER BY id DESC 
LIMIT 3; 

しかし、このクエリは、それぞれの個別の車から最新の 3 台の車を返していません。dealer_id

4

1 に答える 1

4

最新のレコードが必要な場合は、次のようなものを使用できます。

SELECT c1.id, 
  c1.dealer_id, 
  c1.name, 
  c1.model_year, 
  c1.date_Added
FROM cars c1
inner join
(
  select dealer_id, max(date_Added) mxdate
  from cars
  group by dealer_id
) c2
  on c1.dealer_id= c2.dealer_id
  and c1.date_Added = c2.mxdate
GROUP BY dealer_id
ORDER BY id desc
LIMIT 3;

SQL FiddlewithDemoを参照してください

于 2012-08-15T14:15:26.650 に答える