2012-08-15 4 views
1

나는 cars라는 테이블에서 3 행을 반환하고 각 car에는 고유 한 dealer_id가 있어야하며 ID desc로 정렬해야합니다 (따라서 데이터베이스에 추가 된 최신 3 대의 자동차가 반환 된 것이므로MySQL에서 다음을 어떻게 쿼리 할 수 ​​있습니까?

가장 최근의 기록을 원하는 경우

그러나이 쿼리는 각각 별개의 dealer_id

+0

단지 3 줄을 얻고 싶습니까? – BugFinder

+1

"최신 3 대 자동차"와 "distinct dealer_id"는 상호 배타적입니다. 즉, 딜러 한 명당 최대 1 대의 자동차를 반환하려는 의도가있는 경우 반드시 최신 3 대의 자동차를 가져갈 필요는 없습니다. 좀 더 명확하게 질문을 다시 말할 수 있습니까? –

답변

4

에서 최신 3 차를 반환하지 않습니다 당신은 다음과 같은 것을 사용할 수 있습니다

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; 

괜찮다 e SQL Fiddle with Demo

+0

고마워요! 굉장히 유용하다 – KEOKI

관련 문제