1

我想从名为 cars 的表中返回 3 行,每辆车都应该有一个不同的dealer_id ,并且我希望它们按 ID desc 排序(以便添加到数据库中的最新三辆车是返回的)

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 Fiddle

于 2012-08-15T14:15:26.650 回答